Golang的Mysql操作

来源:互联网 发布:视频压缩的常用算法是 编辑:程序博客网 时间:2024/06/06 02:45

背景

前面我已经写过一篇关于操作Redis的博客了。这一次写Golang如何操作Mysql。

基础:

  1. 安装并会用Golang
  2. 安装并配置了kubernetes
  3. kubernetes中已经运行了mysql服务

例子

在讲Mysql的操作之前先上一个小例子

  1 package main  2   3 import (  4         "database/sql"  5         _ "github.com/go-sql-driver/mysql"  6         "log"  7 )  8   9 func main() { 10         db, err := sql.Open("mysql", "root:123456@tcp(192.168.3.52:3306)/mysql?parseTime=true") 11         if err != nil { 12                 log.Fatal(err) 13         } 14  15         _, err1 := db.Exec("CREATE TABLE IF NOT EXISTS mysql.hello(world varchar(50))") 16         if err1 != nil { 17                 log.Fatal(err1) 18         } 19  20         rs, _ := db.Exec("INSERT INTO mysql.hello(world) VALUES ('hello world')") 21  22         rowCount, err3 := rs.RowsAffected() 23         if err3 != nil { 24                 log.Fatal(err3) 25         } 26  27         rs1, _ := db.Query("SELECT world FROM mysql.hello") 28         for rs1.Next(){ 29           var s string 30           rs1.Scan(&s) 31           log.Printf(s) 32         } 33  34  35         log.Printf("insert %d rows", rowCount) 36  37         defer db.Close() 38  39 }

连接

我们这里要使用到Mysql的标准库database/sql与驱动go-sql-driver/mysql。
连接使用标准库中的sql.Open返回数据库对象db,我们接下来就可以用db中的如Exec、Query等方法进行数据库的操作了。
现在来看看sql.Open的参数
sql.Open(Dbuser+":"+DbPasswd+"@tcp("+DbHost+")/"+DbName+"?parseTime=true")
参数就是这样,没什么好解释的,具体例子可以看上面的代码。

操作

操作也比较简单,
db.Exec(SQL操作) 可以用来建表,插入数据
db.Query(查询操作) 用来查询数据
上述例子中查询操作返回给rs1,然后将rs1中的值遍历出来进行显示,代码如下

for rs1.Next(){           var s string           rs1.Scan(&s)           log.Printf(s)}
原创粉丝点击