88)
99
1010
11-
1211// connect mysql db
1312var db , _ = orm.OpenMysql (" user:password@tcp(127.0.0.1:3306)/mydb?parseTime=true&charset=utf8mb4&loc=Asia%2F Shanghai" )
1413
@@ -20,17 +19,17 @@ type User struct {
2019 Name string ` json:"name"`
2120}
2221
23- func (User ) Connections () []*sql .DB {
22+ func (* User ) Connections () []*sql .DB {
2423 return []*sql.DB {db}
2524}
26- func (User ) DatabaseName () string {
25+ func (* User ) DatabaseName () string {
2726 return " mydb"
2827}
29- func (User ) TableName () string {
28+ func (* User ) TableName () string {
3029 return " user"
3130}
32- func (u *User ) Query () *orm .Query [User ] {
33- return orm.NewQuery (u )
31+ func (u *User ) Query () *orm .Query [* User ] {
32+ return orm.NewQuery (UserTable). WherePrimaryIfNotZero (u. Id )
3433}
3534
3635func main () {
@@ -40,27 +39,33 @@ func main() {
4039 // create struct from db table
4140 UserTable.Query ().CreateStruct ()
4241
43- // select * from user where id in (1,2,3)
44- users, query = UserTable.Query ().Gets (1 , 2 , 3 )
42+ // insert one user
43+ UserTable.Query ().Insert (&User{Name:" john" })
44+
45+ // get user id = 1
46+ user , _ := UserTable.Query ().Get (1 )
47+
48+ // update user name
49+ user.Query ().Update (&UserTable.Name , " john 2" )
4550}
4651```
4752
4853## select
4954
5055``` go
51- // get first user ( name='join') as struct
52- user , query := UserTable .Query ().Where (&UserTable.Name , " john" ).Get ()
56+ // get users where name='join'
57+ users , _ := UserTable .Query ().Where (&UserTable.Name , " john" ).Gets ()
5358
5459 // get users count(*)
55- count , query := UserTable .Query ().GetCount ()
60+ count , _ := UserTable .Query ().GetCount ()
5661
5762 // get user names map key by id
5863 var userNameKeyById map [int ]string
5964 UserTable .Query ().Select (&UserTable.Id , &UserTable.Name ).GetTo (&userNameKeyById)
6065
6166 // get users map key by name
6267 // useful when find has-many relations
63- var usersMapkeyByName map [string ][]User
68+ var usersMapkeyByName map [string ][]* User
6469 UserTable .Query ().Select (&UserTable.Name , UserTable ).GetTo (&usersMapkeyByName)
6570
6671```
@@ -69,21 +74,21 @@ func main() {
6974
7075``` go
7176 // update user set name="hello" where id = 1
72- UserTable .Query ().WherePrimary (1 ).Update (&UserTable.Name , " hello " )
77+ UserTable .Query ().WherePrimary (1 ).Update (&UserTable.Name , " john 2 " )
7378
7479 // query delete
7580 UserTable .Query ().Delete (1 , 2 , 3 )
7681
7782 // query insert
78- _ = UserTable .Query ().Insert (User{Name: " han" }).LastInsertId // insert one row and get id
83+ _ = UserTable .Query ().Insert (& User{Name: " han" }).LastInsertId // insert one row and get id
7984
8085```
8186
8287### join
8388
8489``` go
8590 // query join
86- UserTable .Query ().Join (OrderTable, func (query *orm.Query [User]) *orm.Query [User] {
91+ UserTable .Query ().Join (OrderTable, func (query *orm.Query [* User]) *orm.Query [* User] {
8792 return query.Where (&UserTable.Id , &OrderTable.UserId )
8893 }).Select (UserTable).Gets ()
8994```
@@ -92,8 +97,8 @@ func main() {
9297
9398``` go
9499 // transaction
95- _ = UserTable .Query ().Transaction (func (query *orm.Query [User]) error {
96- newId := query.Insert (User{Name: " john" }).LastInsertId // insert
100+ _ = UserTable .Query ().Transaction (func (query *orm.Query [* User]) error {
101+ newId := query.Insert (& User{Name: " john" }).LastInsertId // insert
97102 // newId := orm.NewQuery(UserTable).UseTx(query.Tx()).Insert(User{Name: "john"}).LastInsertId
98103 fmt.Println (newId)
99104 return errors.New (" I want rollback" ) // rollback
@@ -110,11 +115,11 @@ func main() {
110115 UserTable .Query ().Where (&UserTable.Id , orm.WhereIn , subquery).Gets ()
111116
112117 // insert subquery
113- UserTable .Query ().InsertSubquery (subquery, nil )
118+ UserTable .Query ().InsertSubquery (subquery)
114119
115120 // join subquery
116- UserTable .Query ().Join (subquery, func (query *orm.Query [User]) *orm.Query [User] {
121+ UserTable .Query ().Join (subquery, func (query *orm.Query [* User]) *orm.Query [* User] {
117122 return query.Where (&UserTable.Id , orm.Raw (" sub.id" ))
118123 }).Gets ()
119124
120- ```
125+ ```
0 commit comments