准备
go的系统包里是没有数据库驱动的,首先先从git上下载mysql包,golang下载资源包相当方便,打开命令行,输入命令:go get -u github.com/go-sql-driver/mysql (使用git命令下载资源包,需要先安装git,没安装git的同学可以手动下载后放入src目录下)。!
下载完成会在GOPATH下的src里多了资源包
下载完成后,在项目里import mysql包,用下划线_是表示我们只需要用到包里的init()函数,而不需要调用里面的方法。
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql" //导入mysql包
"time"
)
准备数据表
我们来准备一张医生表doctor_tb,包含姓名、年龄、性别、添加时间等,后面我们会对这张表做增删改查的操作。建表语句如下:
CREATE TABLE `doctor_tb` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT '' COMMENT '姓名',
`age` int(11) DEFAULT '0' COMMENT '年龄',
`sex` int(11) DEFAULT '0' COMMENT '性别',
`addTime` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='医生表';
1、打开数据库链接
db, err := sql.Open("mysql", "root:112233@tcp(127.0.0.1:3305)/test?charset=utf8&parseTime=True")
mysql数据库的链接字符串组织:用户名:密码@tcp(数据库IP:端口)/数据库名?charset=utf8&parseTime=True,如果你的表里有应用到datetime字段,记得要加上parseTime=True,不然解析不了这个类型。
//-------1、打开数据库--------
db, err := sql.Open("mysql", "root:112233@tcp(127.0.0.1:3305)/test?charset=utf8&parseTime=True")
if err != nil {
fmt.Println("数据库链接错误", err)
return
}
//延迟到函数结束关闭链接
defer db.Close()
2、查询单条数据
代码:
//-------2、查询单条数据--------
//定义接收数据的结构
var doc Doctor
//执行单条查询
rows := db.QueryRow("select * from doctor_tb where id =