go语言操作mysql数据库

本文介绍了如何在Go语言中安装并使用mysql驱动操作MySQL数据库,包括连接数据库、执行SQL语句(创建表、插入数据)、预处理以及查询数据的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.安装go语言的mysql驱动
go get -u -v github.com/go-sql-driver/mysql
2.go操作MySQL数据库
2.1导入包
 import _ "github.com/go-sql-driver/mysql"//程序在操作数据库的时候只需要用到database/sql,而不需要直接使用数据库驱动,所以程序在导入数据库驱动的时候将这个包的名字设置成下划线。
2.2连接数据库
conn,err := sql.Open("mysql","root:123456@tcp(127.0.0.1:3306)/test?charset=utf8")
defer conn.Close()//随手关闭数据库是个好习惯
2.3执行数据库操作
1) Query 执行数据库的查询操作,例如一个Select语句,返回数据类型为*Rows
2) QueryRow 执行数据库至多返回一条数据,返回数据类型为*Row
3) Exec 执行数不返回任何rows的据库语句,例如delete操作
4)PrePare 准备一个数据库query操作,返回一个*Stmt,用于后续query或Exec。这个Stmt可以被多次执行,或者并发执行
 
 
 //
 package main
import(
    _ "github.com/go-sql-driver/mysql"
    "database/sql"
)
func main(){
    db,err := sql.Open("mysql","root:123456@tcp(192.168.160.143:3306)/yzdb")
    if err!=nil{
        panic(err)
    }
    defer db.Close()
    //建表语句
     sqlStr:=`create table if not exists teacher(id int,name varchar(24));`

    db.Exec(sqlStr)
     //插入数据
     sqlStr = `insert into teacher(id,name) values("1","lili"),("2","lilei");`
     db.Exec(sqlStr)
     //预处理 方式
     sqlStr = `insert into teacher(id,name) values(?,?);`
     stmt,err := db.Prepare(sqlStr)
     if err!=nil{
         panic(err)
    }
    data := [][]string{{"3","yz"},{"4","yzzq"},{"5","ly"}}
    for _,v := range data {
        stmt.Exec(v[0],v[1])
    }
    //查询语句
    sqlQuery := `select id,name from teacher;`
    result := db.QueryRow(sqlQuery)
    var id,name string
    result.Scan(&id,&name)

    sqlQuery = `select * from teacher;`
    rows,_:=db.Query(sqlQuery)
    results := []string{}
    for rows.Next() {
        rows.Scan(&id,&name)
        results = append(results,id,name)
    }
    //fmt.Println(results)
    //预处理
    sqlQuery =  "select * from teacher where id = ?;"
    stmt,err = db.Prepare(sqlQuery)
    if err!=nil {
        panic(err)
    }
    ro,err := stmt.Query("3")
    for ro.Next(){
        ro.Scan(&id,&name)
    }


}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值