go语言如何连接数据库

安装驱动

go get github.com/go-sql-driver/mysql
import (
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
)

连接数据库

	//用户名:密码^@tcp(地址:3306)/数据库
    db, err := sql.Open("mysql", "root:123456%^@tcp(39.107.87.114:3306)/book_manager?charset=utf8")
    if err!=nil {
        fmt.Println(err)
        return
    }   

查询表

	//表结构
    type info struct {
        id int `db:"id"`
        name string `db:"name"`
        author string `db:"author"`
    }   
    //查询表
    rows,err:=db.Query("SELECT * FROM book")
    
    //遍历打印
    for rows.Next(){
        var s info
        err=rows.Scan(&s.id,&s.name,&s.author,)
        fmt.Println(s)
    }
    //用完关闭
    rows.Close()          

完整代码

结果

[kou@python golang]$ go run go_mysql.go 
{4 三国演义 罗贯中}

插入

	//执行MySql语句
    result,err:=db.Exec("INSERT INTO book(id,name,author)VALUES (?,?,?)",2,"将进酒","李白")

    if err != nil {
        panic(err)
    }   

    fmt.Println(result)

    for rows.Next(){
        var s info
        err=rows.Scan(&s.id,&s.name,&s.author,)
        fmt.Println(s)
    }   

    rows.Close()
}  

结果

[kou@python golang]$ !g
go run go_mysql.go 
{4 三国演义 罗贯中}
{0xc0000a2100 0xc000016390}
[kou@python golang]$ !g

go run go_mysql.go 
{2 将进酒 李白}
{4 三国演义 罗贯中}

panic: Error 1062: Duplicate entry '2' for key 'PRIMARY'

goroutine 1 [running]:
main.main()
	/home/kou/golang/go_mysql.go:32 +0x4fa
exit status 2
[kou@python golang]$ !vi
vim go_mysql.go 

删除

     db.Exec("DELETE FROM book where id=?", 2)
     rows,err:=db.Query("SELECT * FROM book")
     for rows.Next(){
         var s info
         err=rows.Scan(&s.id,&s.name,&s.author,)
         fmt.Println(s)
     }

结果

[kou@python golang]$ !g
go run go_mysql.go 
{4 三国演义 罗贯中}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值