doc命令行安装驱动
go get -u github.com/go-sql-driver/mysql
连接数据库
package main
import (
"database/sql"
_ "database/sql"
"fmt"
_ "fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
// 数据库连接信息
db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/macos")
if err != nil {
panic(err.Error())
}
// 建立连接
defer db.Close()
// 测试连接是否成功
err = db.Ping()
if err != nil {
panic(err.Error())
}
fmt.Println("数据库连接成功")
}
查询数据
func dbsearch() {
// 数据库连接信息
db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/macos")
if err != nil {
panic(err.Error())
}
// 建立连接
defer db.Close()
// 测试连接是否成功
err = db.Ping()
if err != nil {
panic(err.Error())
}
fmt.Println("数据库连接成功")
// 执行SQL语句
rows, err := db.Query("SELECT vod_id,vod_name FROM mac_vod")
if err != nil {
panic(err.Error())
}
defer rows.Close()
// 遍历结果集
for rows.Next() {
var vod_id int
var vod_name string
//var age int
err = rows.Scan(&vod_id, &vod_name)
if err != nil {
panic(err.Error())
}
fmt.Println(vod_id, vod_name)
}
}
根据id查询数据
func dbsearchbyid(id int) {
// 数据库连接信息
db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/macos")
if err != nil {
panic(err.Error())
}
// 建立连接
defer db.Close()
// 测试连接是否成功
err = db.Ping()
if err != nil {
panic(err.Error())
}
fmt.Println("数据库连接成功")
// 执行SQL语句
rows, err := db.Query("SELECT vod_id,vod_name FROM mac_vod where vod_id=?", id)
if err != nil {
panic(err.Error())
}
defer rows.Close()
// 遍历结果集
for rows.Next() {
var vod_id int
var vod_name string
//var age int
err = rows.Scan(&vod_id, &vod_name)
if err != nil {
panic(err.Error())
}
fmt.Println(vod_id, vod_name)
}
}
插入数据
文件头部定义结构体,数据库内全部字段
type Album struct {
ID int64
Name string
}
插入数据
func dbinsert(alb Album) (int64, error) {
// 数据库连接信息
db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/demo1")
if err != nil {
panic(err.Error())
}
// 建立连接
defer db.Close()
// 测试连接是否成功
err = db.Ping()
if err != nil {
panic(err.Error())
}
fmt.Println("数据库连接成功")
//插入数据
result, err := db.Exec("INSERT INTO fund (id, name) VALUES (?, ?)", alb.ID, alb.Name)
if err != nil {
return 0, fmt.Errorf("addAlbum: %v\n", err)
}
id, err := result.LastInsertId()
if err != nil {
return 0, fmt.Errorf("addAlbum: %v\n", err)
}
println("数据写入成功")
return id, nil
}
调用方式
func main() {
dbinsert(Album{ID: 8, Name: "zhang"}) //插入数据
}