éè¦ç第ä¸æ¹å ï¼
go get github.com/jmoiron/sqlx
go get github.com/go-sql-driver/mysql
主è¦APIï¼
-
sqlx.Open (driverName, dataSourceName string) (*DB, error)
â driverName ï¼ æ°æ®åºç±»å
â dataSourceName ï¼ æ°æ®åºä¿¡æ¯
â è¿åä¸ä¸ªæ°æ®åºå®ä¾åé误
-
func (db *DB) Exec(query string, args â¦interface{}) (Result, error)
å¯ä»¥ç´æ¥æ§è¡
æä½å¢å æ¹
-
func (db *DB) Select(dest interface{}, query string, args â¦interface{}) error
æ¥è¯¢æä½å½æ°
建表è¯å¥ï¼
CREATE TABLE `person` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=163 DEFAULT CHARSET=latin1;
代ç ï¼
package main
import (
"github.com/jmoiron/sqlx"
_"github.com/go-sql-driver/mysql" //_ 代表åå§åè¿ä¸ªåº
"fmt"
"strconv"
)
//ç»æä½åéé¦åæ¯å¤§åï¼ä»¥ä¾¿å¤é¨å¯ä¿®æ¹æååé
type person struct {
Name string `db "name"`
Age int `db "age"`
Id int `db "id"`
}
func handleError(e error,msg string){
if (e != nil){
fmt.Println(e,msg)
}
}
func main() {
var ps []person
db,err:=sqlx.Open("mysql","root:root@/web")
handleError(err,"sqlx")
defer db.Close()
//å é¤è¡¨æ°æ®
db.Exec("delete from person")
var last_id int64
//insert æ°æ®
for i:= 0; i< 10 ;i++ {
rst,_ := db.Exec(`insert into person (name ,age) values (? ,?)`, "zhangsan_"+strconv.Itoa(i+20), 20+i)
a_num, _ := rst.RowsAffected()
last_id, _ = rst.LastInsertId()
fmt.Println("å½±åçè¡æ°ï¼",a_num,"æåä¸æ¡è®°å½çid为ï¼",last_id)
}
//ä¿®æ¹æ°æ®
db.Exec(`update person set name = "lisi" where id=?`, last_id)
//æ¥è¯¢æ°æ®
db.Select(&ps,"select name ,age,id from person")
for _,unit_ps := range ps{
fmt.Printf("name: %s,age: %d,Id ï¼%d\n",unit_ps.Name,unit_ps.Age,unit_ps.Id)
}
è¾åºï¼
å½±åçè¡æ°ï¼ 1 æåä¸æ¡è®°å½çidä¸ºï¼ 153
å½±åçè¡æ°ï¼ 1 æåä¸æ¡è®°å½çidä¸ºï¼ 154
å½±åçè¡æ°ï¼ 1 æåä¸æ¡è®°å½çidä¸ºï¼ 155
å½±åçè¡æ°ï¼ 1 æåä¸æ¡è®°å½çidä¸ºï¼ 156
å½±åçè¡æ°ï¼ 1 æåä¸æ¡è®°å½çidä¸ºï¼ 157
å½±åçè¡æ°ï¼ 1 æåä¸æ¡è®°å½çidä¸ºï¼ 158
å½±åçè¡æ°ï¼ 1 æåä¸æ¡è®°å½çidä¸ºï¼ 159
å½±åçè¡æ°ï¼ 1 æåä¸æ¡è®°å½çidä¸ºï¼ 160
å½±åçè¡æ°ï¼ 1 æåä¸æ¡è®°å½çidä¸ºï¼ 161
å½±åçè¡æ°ï¼ 1 æåä¸æ¡è®°å½çidä¸ºï¼ 162
name: zhangsan_20,age: 20,Id ï¼153
name: zhangsan_21,age: 21,Id ï¼154
name: zhangsan_22,age: 22,Id ï¼155
name: zhangsan_23,age: 23,Id ï¼156
name: zhangsan_24,age: 24,Id ï¼157
name: zhangsan_25,age: 25,Id ï¼158
name: zhangsan_26,age: 26,Id ï¼159
name: zhangsan_27,age: 27,Id ï¼160
name: zhangsan_28,age: 28,Id ï¼161
name: lisi,age: 29,Id ï¼162