背景
前面我已经写过一篇关于操作Redis的博客了。这一次写Golang如何操作Mysql。
基础:
- 安装并会用Golang
- 安装并配置了kubernetes
- 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)
}