xorm插入數據庫后返回主鍵自增id


golang使用xorm連接數據庫后,插入結構體,無法返回自增主鍵id,飯后的主鍵id都是0。經過研究發現,如果給結構體id設置xorm tag,則會默認id為0,不會返回插入成功后的主鍵id。

xorm文檔中如下描述

 

 1 package main
 2 
 3 import (
 4     "fmt"
 5     "time"
 6 
 7     _ "github.com/go-sql-driver/mysql"
 8     "github.com/go-xorm/xorm"
 9 )
10 
11 type User struct {
12     // 如果此處 `xorm:"id"`,則插入數據的時候,會默認為0,插入成功后不會把新插入的id返回,如果想得到插入后的主鍵id,則id不需要寫`xorm:"id"`
13     Id      int64     //`xorm:"id"`
14     Name    string    `xorm:"name"`
15     Created time.Time `xorm:"created"`
16     Updated time.Time `xorm:"updated"`
17     Deleted time.Time `xorm:"deleted"`
18 }
19 
20 // 設置user結構體對應的表名
21 func (User) TableName() string {
22     return "test_user_2"
23 }
24 
25 func main() {
26     engine, err := xorm.NewEngine("mysql", "root:123456@tcp(10.10.30.99:3306)/test?charset=utf8")
27     if err != nil {
28         fmt.Println("connect mysql is failed, err:", err)
29     }
30 
31     u := &User{
32         Name: "aaa",
33     }
34     // 可插入多條engine.Insert(u1,u2)
35     affecte, err := engine.Insert(u)
36     if err != nil {
37         fmt.Println("insert is failed,err:", err)
38     }
39     fmt.Println("affect=", affecte, u.Id)
40 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM