Golang的Mysql操作

背景

前面我已经写过一篇关于操作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)
}

猜你喜欢

转载自blog.csdn.net/hty46565/article/details/77092722