Go MySQL

1: 首先需要安装MySQL驱动程序(https://github.com/go-sql-driver/mysql)

   到项目路径下执行, 获取驱动源码, 编译时该驱动会自动生成

mysql.a
到pkg目录下:
~/gowork$ GOPATH=`pwd` go get github.com/go-sql-driver/mysql

2: 代码结构如下

gaojie@zs-gaojie:~/gowork$ tree
.
├── bin
│   └── main
├── pkg
│   └── linux_amd64
│       └── github.com
│           └── go-sql-driver
│               └── mysql.a
└── src
    ├── github.com
    │   └── go-sql-driver
    │       └── mysql
    │           ├── buffer.go
    │           ├── connection.go
    │           ├── const.go
    │           ├── driver.go
    │           ├── driver_test.go
    │           ├── errors.go
    │           ├── infile.go
    │           ├── LICENSE
    │           ├── packets.go
    │           ├── README.md
    │           ├── result.go
    │           ├── rows.go
    │           ├── statement.go
    │           ├── transaction.go
    │           ├── utils.go
    │           └── utils_test.go
    └── main
        └── mysql.go

10 directories, 19 files
   3:mysql.go
package main


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


/**
GOPATH=`pwd` go get github.com/go-sql-driver/mysql
*/
const (
 mysql_host="*.*.*.*"
 mysql_user="root"
 mysql_password="mysqladmin"
)
func main(){
 fmt.Println("connect MySQL...")
 //username:password@protocol(address)/dbname?param=value
 db, err := sql.Open("mysql", mysql_user+":"+mysql_password+"@tcp4("+mysql_host+":3306)/test")
 if err != nil {
 log.Fatal(err)
 }
 //db销毁毁时, 执行close函数关闭数据库链接(defer块会在函数main执行完,再调用)
 defer db.Close()
 
 err = db.Ping()
 if err != nil {
    log.Fatal(err)
 }
 log.Print("db:", db)
 //插入
 iSql := "insert into go (name, age)  values (?, ?)"
 result, err := db.Exec(iSql, "gaojie", 24);
 if err != nil {
 log.Fatal(err)
 }
 log.Print(result.LastInsertId())
 
 //查询
 rSQL := "select name, age from go"
 rows, err := db.Query(rSQL);
 if err != nil {
 log.Fatal(err)
 }
 //遍历行
 for rows.Next() {
    	var name string
    	var age int
    	//安装顺序,会把值设置到对应变量中
    	err = rows.Scan(&name, &age)
    	//输出
    	log.Println("name :", name, "\t age :", age)
    }
 
}

转载于:https://my.oschina.net/u/139611/blog/168752

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值