golang mysql操作介绍

互联网 20-2-26
Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。下面就来由go入门教程栏目介绍一些关于mysql的操作。

go操作mysql数据库,用的库是 go-sql-driver/mysql,安装直接go get

go get -u github.com/go-sql-driver/mysql

sql.DB

DB类型可用的函数有:

1、Query(c string, args interface{} …) (*Rows, error),常用于SELECT语句

2、Exec(c string, args interface{} …) (*Rows, error),常用与UPDATE和INSERT

3、Prepare(c string) (*Stmt, error),其他语句,也可以用于执行上述语句,返回Stmt指针

sql.Stmt

Stmt是准备好的语句,可以执行数据库语句操作,常用函数有:

Exec(args interface{} …) (Result, error),给定参数并执行准备好的语句,然后返回语句的总结果

//... 	stmt, err := db.Perpare("INSERT INTO User(user,pwd) VALUES (?, ?)") 	if err != nil { 		panic(err) 	} 	defer stmt.Close() 	_, err := stmt.Exec("laoli", "123456") 	if err != nil { 		panic(err) 	} //... //... 	stmt, err := db.Perpare("DELETE FROM User") 	if err != nil { 		panic(err) 	} 	defer stmt.Close() 	_, err := stmt.Exec() 	if err != nil { 		panic(err) 	}

Query(args interface{} …) (*Rows, error),给定参数并执行准备好的语句,返回行结果,比方说SELECT操作就必须用这个函数调用。

sql.Rows

// 源码 func (rs *Rows) Next() bool { 	var doClose, ok bool 	withLock(rs.closemu.RLocker(), func() { 		doClose, ok = rs.nextLocked() 	}) 	if doClose { 		rs.Close() //在这里释放掉了 	} 	return ok }

例子:

package main  import ( 	"database/sql" 	_ "github.com/go-sql-driver/mysql" )  var db *sql.DB func mian() { 	db = sql.Open("mysql", "root:123456@tcp(127.0.0.1)/test") 	if err := db.Ping(); err != nil { 		panic(err) 	} }  func Insert() { 	_, err := db.Exec("INSERT INTO User(user, pwd) VALUE (?, ?)", "laowang", "123456") 	if err != nil { 		panic(err) 	} }  func SelectRow() { 	rows, err := db.Query("SELECT * FROM User WHERE user=?", "laowang") 	if err != nil { 		panic(err) 	} 	//defer rows.Close() //如果后面代码没有循环调用rows.Next(),就需要手动在这里释放一下,不然会一直占用缓存 	var user string 	var pwd string 	for rows.Next() { 		row.Scan(&user, &pwd) 	} 	print(user, pwd) }

更多go语言知识请关注php中文网go语言教程栏目。

以上就是golang mysql操作介绍的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: golang
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:go get命令下载扩展包的几点说明

相关资讯