第十七章:Go语言之MySql
1、MySQL驱动
https://github.com/Go-SQL-Driver/MySQL
sql.Open()函数用来打开一个注册过的数据库驱动,Go-MySQL-Driver中注册了mysql这个数据库驱动,第二个参数是DNS(Data Source Name),
它是Go-MySQL-Driver定义的 一些数据库链接和配置信息。它支持如下格式:
user:password@tcp(localhost:5555)/dbname?charset=utf8
2、增删改查
插入数据
stmt, err := db.Prepare("INSERT user_info SET username=?,departname=?,create_time=?")
res, err := stmt.Exec("zhangsan", "技术部", "2012-12-09")
id, err := res.LastInsertId()
更新数据
stmt, err = db.Prepare("update user_info set username=? where uid=?")
res, err = stmt.Exec("lisi", id)
affect, err := res.RowsAffected()
查询数据
rows, err := db.Query("SELECT * FROM user_info")
for rows.Next() {
var id int
var username string
var department string
var create_time string
err = rows.Scan(&uid, &username, &department, &create_time)
}
删除数据
stmt, err = db.Prepare("delete from user_info where uid=?")
res, err = stmt.Exec(id)
// mysql.go
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
db, err := sql.Open("mysql", "root:123456@tcp(node01:3306)/test?charset=utf8")
if err != nil {
panic(err)
}
//新增
/* stmt, err := db.Prepare("INSERT user_info SET username=?,departname=?,create_time=?")
res, err := stmt.Exec("zhangsan", "技术部", "2016-12-09")
id, err := res.LastInsertId()
if err != nil {
panic(err)
}
fmt.Println(id) */
//修改
/*stmt, err := db.Prepare("update user_info set username=? where id=?")
if err != nil {
panic(err)
}
res, err := stmt.Exec("lisi", 1)
if err != nil {
panic(err)
}
row, _ := res.RowsAffected()
fmt.Println(row)*/
//查询
/*row, err := db.Query("select * from user_info")
if err != nil {
panic(err)
}
for row.Next() {
var id int
var username string
var departname string
var create_time string
err := row.Scan(&id, &username, &departname, &create_time)
if err != nil {
panic(err)
}
fmt.Println(id, username, departname, create_time)
}*/
//删除
stmt, err := db.Prepare("delete from user_info where id = ?")
if err != nil {
panic(err)
}
res, err := stmt.Exec(1)
if err != nil {
panic(err)
}
row, _ := res.RowsAffected()
fmt.Println(row)
}
浙公网安备 33010602011771号