這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
官方 sql
func main() {type Userinfo struct {Id uintUsername stringDepartment stringCreated string}db, err := sql.Open("mysql","root:root@tcp(localhost:3306)/gorm")if err != nil {log.Fatal(err.Error())}defer db.Close()//準備語句,避免多次重複執行stmt,err := db.Prepare("INSERT userinfo SET username=?,department=?,created = ?")if err != nil {log.Fatal(err.Error())}res,err := stmt.Exec("lisi","ad",time.Time{})if err != nil {log.Fatal(err.Error())}log.Println(res )rows,err := db.Query("SELECT * FROM userinfo")if err != nil {log.Fatal(err.Error())}var userinfo Userinfofor rows.Next() {rows.Scan(&userinfo)}}
gorp
type Product struct {Id int64 `db:"product_id"`PName string `db:"pname"`Price int `db:"price"`}func main() {db, err := sql.Open("mysql", "root:root@tcp(localhost:3306)/gorm")if err != nil {log.Fatal(err.Error())}defer db.Close()//官方sql -> gorpdbmap := &gorp.DbMap{Db:db,Dialect:gorp.MySQLDialect{"InnnoDB","UTF8"}}dbmap.CreateTablesIfNotExists()//Tlogdbmap.TraceOn("[gorp]", log.New(os.Stdout, "app", log.Lmicroseconds))product := Product{11101,"taozi",2000}dbmap.Insert(&product)dbmap.Delete(&product)var products []Product_, err = dbmap.Select(&products, "select * from product")var prod Producterr = dbmap.SelectOne(&prod, "select * from product where product_id=?", 3)fmt.Println("product:", prod)//對原生的支援result, err := dbmap.Exec("delete from seller where seller_id=?", 2)log.Println(result.RowsAffected())}func InsertTrans(dbmap *gorp.DbMap, product *Product) error {trans, err := dbmap.Begin()if err != nil {return err}trans.Insert(product)return trans.Commit() //if commint is sucdessful ,a nil error is returned}
gorm