mysql 插入返回id go操作mysql

2021-10-12 20:10:04 字數 2244 閱讀 3125

go get -u github.com/go-sql-driver/mysql
2,使用mysql驅動

func open(drivername, datasourcename string) (*db, error)
open開啟乙個dirvername指定的資料庫,datasourcename指定資料來源,一般包至少括資料庫檔名和(可能的)連線資訊。

dsn := "root:1993xtay701@tcp(127.0.0.1:3306)/test"

db,err = sql.open("mysql",dsn)

4,初始化連線

)// 定義乙個全域性物件db

var db *sql.db

// 定義乙個初始化資料庫的函式

func initdb() (err error)

// 嘗試與資料庫建立連線(校驗dsn是否正確)

err = db.ping()

if err != nil

return nil

}func main()

}

type user struct 

func queryrowdemo()

fmt.printf("id:%d name:%s age:%dn", u.id, u.name, u.age)

}

單行查詢db.queryrow()執行一次查詢,並期望返回最多一行結果(即row)。queryrow總是返回非nil的值,直到返回值的scan方法被呼叫時,才會返回被延遲的錯誤。(如:未找到結果)

6,多條查詢

// 查詢多條資料示例

func querymultirowdemo()

defer rows.close()

// 迴圈讀取結果集中的資料

for rows.next()

fmt.printf("id:%d name:%s age:%dn", u.id, u.name, u.age)

}}

多行查詢db.query()執行一次查詢,返回多行結果(即rows),一般用於執行select命令。引數args表示query中的佔位引數。

7,插入資料

// 插入資料

func insertrowdemo()

theid, err := ret.lastinsertid() // 新插入資料的id

if err != nil

fmt.printf("insert success, the id is %d.n", theid)

}

插入、更新和刪除操作都使用方法。

func (db *db) exec(query string, args ...inte***ce{}) (result, error)
exec執行一次命令(包括查詢、刪除、更新、插入等),返回的result是對已執行的sql命令的總結。引數args表示query中的佔位引數。

8,更新資料

// 更新資料

func updaterowdemo()

n, err := ret.rowsaffected() // 操作影響的行數

if err != nil

fmt.printf("update success, affected rows:%dn", n)

}

9,刪除資料

// 刪除資料

func deleterowdemo()

n, err := ret.rowsaffected() // 操作影響的行數

if err != nil

fmt.printf("delete success, affected rows:%dn", n)

}

Mybatis插入insert操作返回自增主鍵值

在資料庫設計中,通常主鍵都使用無意義的自增主鍵id。在插入資料後,有時候還需要進行修改操作。所以,insert之後,直接返回生成的主鍵id是有必要的。mybatis註解方式,返回主鍵值方法。給對應的insert函式加上org.apache.ibatis.annotations.options註解 這...

mysql 插入返回主鍵 併發問題

現象 當業務涉及主從訂單表時,主表主鍵orderid為自增列,這時在涉及新增操作時,往往會出現如下的程式設計思路 insert order values select identity 程式中再接收返回的值,作為orderdetail表中orderid的值,做insert操作 問題 單使用者沒有問題...

mybitas插入返回主鍵

id adduser parametertype bean.user usegeneratedkeys true keyproperty id insert into user name email password values insert usegeneratedkeys 取值範圍true f...