go mysql - Go语言中文社区

go mysql


参考《go语言编程入门与实战技巧》

1.获取mysql驱动

目前使用比较多的是https://github.com/go-sql-driver/mysql,该驱动支持database/sql接口,支持keepalive,且当前维护较好。

使用该驱动首先需要将其clone到本地的gopath/src路径下。

以win10系统使用goland为例,查看gopath方式为file>>setting>>gopath

打开该目录使用git clone下载驱动程序。

2.引入mysql驱动

接下来就是在程序中引入该驱动,方式如下。

import (
	_ "mysql"
)

引入时前面要带下划线,因为这里只需要在引用包时调用包的init函数,在init里实现数据库驱动的注册,而不需要使用包里的函数和变量等资源。如果不加下划线,程序会报错,因为后面在使用时我们并没有使用mysql包里的任何资源。

引入包的几种方式可以参见Golang- import 导入包的几种方式:点,别名与下划线

3.测试

(1)数据表

(2)测试代码

package main

import (
	"database/sql"
	"fmt"
	_ "mysql"
)

func main() {
	db, err := sql.Open("mysql", "djq:lnx@/test?charset=utf8")
	check(err)

	//插入数据
	stmt, err := db.Prepare("insert userinfo set username=?, departname=?,created=?")
	check(err)
	res, err := stmt.Exec("hbliuu", "zebra English", "2019-11-04")
	check(err)
	id, err := res.LastInsertId()
	check(err)
	fmt.Println("id is: ", id)

	//更新数据
	stmt, err = db.Prepare("update userinfo set departname=? where username=?")
	check(err)
	res, err = stmt.Exec("toutiao", "jero")
	affect, err := res.RowsAffected()
	check(err)
	fmt.Println("affected row is: ", affect)

	//查询数据
	rows, err := db.Query("select * from userinfo")
	check(err)
	for rows.Next() {
		var uid int
		var username string
		var department string
		var created string
		err = rows.Scan(&uid, &username, &department, &created)
		check(err)
		fmt.Printf("uid: %d, username: %s, department: %s, created: %sn", uid, username, department, created)
	}

	//删除数据
	stmt, err = db.Prepare("delete from userinfo where uid=?")
	check(err)
	res, err = stmt.Exec("1")
	check(err)
	affect, err = res.RowsAffected()
	check(err)
	fmt.Println("affected row is: ", affect)
	db.Close()
}

func check(err error) {
	if err != nil {
		panic(err)
	}
}

(3)测试结果

注:uid设置了递增,之前产生过2,3但是被我删了,所以直接变成了4

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/u013536232/article/details/102906962
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-02-25 00:01:32
  • 阅读 ( 1170 )
  • 分类:数据库

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢