mysql操作

Go语言标准库中有两个包和DB操作相关,database/sql和database/sql/driver。

sql包提供了保证SQL或类SQL数据库的泛用接口。

driver包定义了应被数据库驱动实现的接口,这些接口会被sql包使用。

import (
    "database/sql"

    //通过_引入init()函数
    _"github.com/go-sql-driver/mysql"//驱动初始化
)

//初始函数给mysql注册了驱动
func init() {
    sql.Register("mysql", &MySQLDriver{})
}

 

1.连接数据库及查询

package main


import (
    "database/sql"

    "fmt"
    _"github.com/go-sql-driver/mysql"
)
func main() {

    
    db, _ := sql.Open("mysql", "root:xxxxxx@tcp(127.0.0.1:3306)/study?charset=utf8")

    defer  db.Close()//defer关闭数据库连接

    //查询表、返回*Rows,其中存放着数据信息
    rows, _ := db.Query("select * from xxx")

    defer rows.Close()//defer关闭查询连接

    //获取列相关信息
    strings, _ := rows.Columns()
    
    for i:=0;i< len(strings);i++{
        fmt.Print(" ",strings[i])
    }

    fmt.Println()
    var id int
    var name string
    var sex string
    var about string
    
    for rows.Next(){
        rows.Scan(&id,&name,&sex,&about)//将一行数据放入参数中
        fmt.Println(id,name,sex,about)
        }
}

 

2.插入

query:="insert into stu(id, name, sex, about) values(10,'陈浩南','男','物理')"
db.Exec(query)//执行语句

3.sql支持事务

tx, _ := db.Begin()//事务
tx.Exec("delete  from stu where id=19")
tx.Commit()//提交

 

 

 

 

 

posted on 2021-11-19 16:33  myworldworld  阅读(15)  评论(0)    收藏  举报

导航