Skip to content

Commit 4f1610f

Browse files
committed
自动生成model操作数据库方法
1 parent bd130b4 commit 4f1610f

File tree

2 files changed

+90
-9
lines changed

2 files changed

+90
-9
lines changed

README.md

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,18 +56,40 @@ gobatis-cmd -driver=mysql -host=localhost -port=3306 -user=test -pw=test -db=tes
5656

5757
例子:
5858
```
59-
package test_package
59+
package test
6060
61-
import "time"
61+
import (
62+
"github.com/xfali/gobatis"
63+
"time"
64+
)
6265
6366
type TestTable struct {
64-
//TableName gobatis.ModelName `test_table`
65-
Id int64 `xfield:"id"`
66-
Username string `xfield:"username"`
67-
Password string `xfield:"password"`
68-
UpdateTime time.Time `xfield:"update_time"`
67+
//TableName gobatis.ModelName `test_table`
68+
Id int `xfield:"id"`
69+
Username string `xfield:"username"`
70+
Password string `xfield:"password"`
71+
Createtime time.Time `xfield:"createtime"`
72+
}
73+
74+
func (m *TestTable) Select(sess *gobatis.Session) ([]TestTable, error) {
75+
return SelectTestTable(sess, *m)
76+
}
77+
78+
func (m *TestTable) Count(sess *gobatis.Session) (int64, error) {
79+
return SelectTestTableCount(sess, *m)
80+
}
81+
82+
func (m *TestTable) Insert(sess *gobatis.Session) (int64, int64, error) {
83+
return InsertTestTable(sess, *m)
6984
}
7085
86+
func (m *TestTable) Update(sess *gobatis.Session) (int64, error) {
87+
return UpdateTestTable(sess, *m)
88+
}
89+
90+
func (m *TestTable) Delete(sess *gobatis.Session) (int64, error) {
91+
return DeleteTestTable(sess, *m)
92+
}
7193
```
7294

7395
### 2、xml文件

gen_model.go

Lines changed: 61 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,19 @@ func genModel(config Config, tableName string, model []common.ModelInfo) {
5454
builder.WriteString(common.Newline())
5555
builder.WriteString(common.Newline())
5656

57+
builder.WriteString("import (")
58+
builder.WriteString(common.Newline())
59+
builder.WriteString(common.ColumnSpace())
60+
builder.WriteString(`"github.com/xfali/gobatis"`)
61+
builder.WriteString(common.Newline())
5762
if findTime(model) {
58-
builder.WriteString("import \"time\"")
59-
builder.WriteString(common.Newline())
63+
builder.WriteString(common.ColumnSpace())
64+
builder.WriteString(`"time"`)
6065
builder.WriteString(common.Newline())
6166
}
67+
builder.WriteString(")")
68+
builder.WriteString(common.Newline())
69+
builder.WriteString(common.Newline())
6270
}
6371

6472
builder.WriteString("type ")
@@ -82,6 +90,57 @@ func genModel(config Config, tableName string, model []common.ModelInfo) {
8290
}
8391
builder.WriteString("}")
8492
builder.WriteString(common.Newline())
93+
builder.WriteString(common.Newline())
94+
95+
//select
96+
builder.WriteString(fmt.Sprintf("func (m *%s) Select(sess *gobatis.Session) ([]%s, error) {", modelName, modelName))
97+
builder.WriteString(common.Newline())
98+
builder.WriteString(common.ColumnSpace())
99+
builder.WriteString(fmt.Sprintf("return Select%s(sess, *m)", modelName))
100+
builder.WriteString(common.Newline())
101+
builder.WriteString("}")
102+
builder.WriteString(common.Newline())
103+
builder.WriteString(common.Newline())
104+
105+
//count
106+
builder.WriteString(fmt.Sprintf("func (m *%s) Count(sess *gobatis.Session) (int64, error) {", modelName))
107+
builder.WriteString(common.Newline())
108+
builder.WriteString(common.ColumnSpace())
109+
builder.WriteString(fmt.Sprintf("return Select%sCount(sess, *m)", modelName))
110+
builder.WriteString(common.Newline())
111+
builder.WriteString("}")
112+
builder.WriteString(common.Newline())
113+
builder.WriteString(common.Newline())
114+
115+
//insert
116+
builder.WriteString(fmt.Sprintf("func (m *%s) Insert(sess *gobatis.Session) (int64, int64, error) {", modelName))
117+
builder.WriteString(common.Newline())
118+
builder.WriteString(common.ColumnSpace())
119+
builder.WriteString(fmt.Sprintf("return Insert%s(sess, *m)", modelName))
120+
builder.WriteString(common.Newline())
121+
builder.WriteString("}")
122+
builder.WriteString(common.Newline())
123+
builder.WriteString(common.Newline())
124+
125+
//update
126+
builder.WriteString(fmt.Sprintf("func (m *%s) Update(sess *gobatis.Session) (int64, error) {", modelName))
127+
builder.WriteString(common.Newline())
128+
builder.WriteString(common.ColumnSpace())
129+
builder.WriteString(fmt.Sprintf("return Update%s(sess, *m)", modelName))
130+
builder.WriteString(common.Newline())
131+
builder.WriteString("}")
132+
builder.WriteString(common.Newline())
133+
builder.WriteString(common.Newline())
134+
135+
//delete
136+
builder.WriteString(fmt.Sprintf("func (m *%s) Delete(sess *gobatis.Session) (int64, error) {", modelName))
137+
builder.WriteString(common.Newline())
138+
builder.WriteString(common.ColumnSpace())
139+
builder.WriteString(fmt.Sprintf("return Delete%s(sess, *m)", modelName))
140+
builder.WriteString(common.Newline())
141+
builder.WriteString("}")
142+
builder.WriteString(common.Newline())
143+
builder.WriteString(common.Newline())
85144

86145
io.Write(modelFile, []byte(builder.String()))
87146
}

0 commit comments

Comments
 (0)