<%@ CodeTemplate Language="C#" ClassName="Go_ModelOrm2" TargetLanguage="C#" Debug="False" Description="" encoding="GB2312" %> <%@ Property Name="databaseProjectName" Type="System.String" Default="SpSampleDb" Optional="True" Category="Context" Description="" %> <%@ Property Name="nameSpace" Type="System.String" Default="Model" Optional="True" Category="Context" Description="" %> <% DbEntity db = Template.GetDataBase(databaseProjectName); foreach(Table tb in db.Tables) { OpenResponse(databaseProjectName+"\\GoModelOrm2\\"+tb.ModuleName.ToLower()+"\\"+tb.PropertyName.ToLower()+".go"); string pkey = ""; string pkeyvalue = ""; string pkParmList = ""; foreach(Field fd in tb.Fields) { if(fd.IsPK == true){ pkParmList += fd.DataType.DotNetType+" "+fd.MemberName+","; pkey=fd.PropertyName; } } pkParmList = pkParmList.Trim(','); %> /*******************************************************/ /*Project: Module : Description : Date : <%=DateTime.Now.ToString()%> Create : Lxc Update : TODO : */ /*******************************************************/ package <%=tb.ModuleName.ToLower()%> import ( "hm/eclibs/formatcom" "hm/eclibs/logger" "hm/eclibs/db2/db" ) type <%=tb.PropertyName%> struct { <% foreach(Field fd in tb.Fields) { if( fd.DataType.Convert == "ToDateTime") { Response.Write("\t"+fd.PropertyName +" string "); } else if( fd.DataType.Convert == "ToInt32") { Response.Write("\t"+fd.PropertyName +" int64 "); } else if( fd.DataType.Convert == "ToString") { Response.Write("\t"+fd.PropertyName +" string"); } else if( fd.DataType.Convert == "ToDecimal") { Response.Write("\t"+fd.PropertyName +" float64"); } else { Response.Write("\t"+fd.PropertyName +" string"); } Response.WriteLine("\t`json:\""+fd.PropertyName.ToLower()+"\"`"); } %> } func (m *<%=tb.PropertyName%>) TableName() string { return "<%=tb.TableSpace.ToLower()+tb.PropertyName.ToLower()%>" } func (m *<%=tb.PropertyName%>) ViewName() string { return "v_<%=tb.PropertyName.ToLower()%>" } func (m *<%=tb.PropertyName%>) PrimaryKey() string { return "<%=pkey.ToLower()%>" } func (m *<%=tb.PropertyName%>)Add() (int64, error) { return db.Insert(m) } func (m *<%=tb.PropertyName%>) Update( ) (int64, error) { return db.Update(m) } func (m *<%=tb.PropertyName%>) Delete(uid string ) (int64, error) { sql := "delete from " + m.TableName() + " where "+m.PrimaryKey()+"=?" return db.ExeSql(sql, uid) } func (m *<%=tb.PropertyName%>) GetModel(uid string) *<%=tb.PropertyName%> { where := m.PrimaryKey()+"=?" return m.GetModelByWhere(where, uid) } func (m *<%=tb.PropertyName%>) GetModelByWhere(where string, args ...interface{}) *<%=tb.PropertyName%> { <%=tb.PropertyName.ToLower()%>Arr, err := m.<%=tb.PropertyName%>Arr(where,args...) if err != nil { logger.Error("GetModel where=", where) return nil } for _, value := range <%=tb.PropertyName.ToLower()%>Arr { model := new(<%=tb.PropertyName%>) err :=db.BindData(model, value) if err !=nil{ logger.Error(err) continue } return model } return nil } func (m *<%=tb.PropertyName%>)<%=tb.PropertyName%>Arr(where string,args ...interface{}) ([]db.Params, error) { var sqlstr = "select a.* from " + m.TableName() + " a " if where != "" { sqlstr += " where " + where } <%=tb.PropertyName.ToLower()%>list, err := db.Query(sqlstr,args...) return <%=tb.PropertyName.ToLower()%>list, err } func (m *<%=tb.PropertyName%>)<%=tb.PropertyName%>List(where string, args ...interface{}) ([]*<%=tb.PropertyName%>, error) { <%=tb.PropertyName.ToLower()%>List := make([]*<%=tb.PropertyName%>, 0, 1) <%=tb.PropertyName.ToLower()%>Arr, err := m.<%=tb.PropertyName%>Arr(where,args...) if err != nil { return <%=tb.PropertyName.ToLower()%>List, err } if <%=tb.PropertyName.ToLower()%>Arr == nil { return <%=tb.PropertyName.ToLower()%>List, nil } for _, value := range <%=tb.PropertyName.ToLower()%>Arr { model := new(<%=tb.PropertyName%>) err :=db.BindData(model, value) if err !=nil{ logger.Error(err) continue } <%=tb.PropertyName.ToLower()%>List = append(<%=tb.PropertyName.ToLower()%>List, model) } return <%=tb.PropertyName.ToLower()%>List, nil } <% CloseResponse(); } %>