首页 >后端开发 >Golang > 正文

Go语言中操作MySQL数据库的方法

转载2020-02-15 15:06:200817
Go语言是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。go语言教程栏目就来为大家介绍一下go语言中操作MySQL数据库的方法。

Go语言操作MySQL数据库:

安装go操作MySQL的驱动

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

go操作MySQL数据库

导包

import _ "github.com/go-sql-driver/mysql"

程序在操作数据库的时候只需要用到database/sql,而不需要直接使用数据库驱动,所以程序在导入数据库驱动的时候将这个包的名字设置成下划线。

连接数据库,用sql.Open()方法,open()方法的第一个参数是驱动名称,第二个参数是连接字符串,格式为:用户名:密码@tcp(ip:port)/数据库名称?编码方式,返回值是连接对象和错误信息,例如:

conn,err := sql.Open("mysql","root:123456@tcp(127.0.0.1:3306)/test?charset=utf8")
defer conn.Close()//随手关闭数据库是个好习惯

执行数据库操作。

数据库的主要方法有:

Query 执行数据库的查询操作,例如一个Select语句,返回数据类型为*Rows

QueryRow 执行数据库至多返回一条数据,返回数据类型为*Row

Exec 执行数不返回任何rows的据库语句,例如delete操作

PrePare 准备一个数据库query操作,返回一个*Stmt,用于后续query或Exec。这个Stmt可以被多次执行,或者并发执行

创建表

exec函数如下:

func (db *DB) Exec(query string, args ...interface{}) (Result, error)

创建表的方法也是Exec(),参数是SQL语句,返回值是结果集和错误信息.

其中result包含的内容有:

type Result interface {
	LastInsertId() (int64, error)
	RowsAffected() (int64, error)
}

RowsAffected() 函数,可以获得成功执行SQL后对数据库所影响的行数。

res ,err:= conn.Exec("create table user(name VARCHAR(40),pwd VARCHAR(40))")
beego.Info("create table result=",res.,err)

增删改操作

执行增删改操作语句的是Exec(),参数是SQL语句,返回值是结果集和错误信息,通过对结果集的判断,得到执行结果的信息。以插入数据为例代码如下:

res,_:=stmt.Exec("insert user(name,pwd) values (?,?)","tony","tony")
count,_:=res.RowsAffected()
this.Ctx.WriteString(strconv.Itoa(int(count)))

查询操作

用的函数是Query()和QueryRow.

func (db *DB) QueryRow(query string, args ...interface{}) *Row
func (db *DB) Query(query string, args ...interface{}) (*Rows, error)

利用QueryRow实现单行查询,能确定该SQL语句的查询结果为一条记录。将结果中的字段值使用Scan()函数依次提取。

利用Query实现多行数据查询,返回值为查询结果集和错误信息。通过next和Scan函数一起将数据取出来

代码如下:

单行查询:

row:= conn.QueryRow(`select * from user where userName = "wyj"`)
var name,pwd string
row.Scan(&name,&pwd)
beego.Info(name,"------",pwd)

多行查询:

data ,err :=conn.Query("SELECT name from user")
	var userName string
	if err == nil{
		for data.Next(){
			data.Scan(&userName)
			beego.Info(userName)
		}
	}

全部代码

//连接数据库
conn,err := sql.Open("mysql","root:123456@tcp(127.0.0.1:3306)/testtest?charset=utf8")
	if err != nil{
		beego.Info("链接失败")
	}
	defer conn.Close()
//建表
	res ,err:= conn.Exec("create table user(userName VARCHAR(40),passwd VARCHAR(40))")
	beego.Info("create table result=",res,err)
//插入数据
    res,err =conn.Exec("insert user(userName,passwd) values(?,?)","itcast","heima")
	beego.Info(res,err)
//单行查询
	row:= conn.QueryRow(`select * from user where userName = "wyj"`)
	var name,pwd string
	row.Scan(&name,&pwd)
	beego.Info(name,"------",pwd)
//多行查询
	data ,err :=conn.Query("SELECT userName from user")
	var userName string
	if err == nil{
		for data.Next(){
			data.Scan(&userName)
			beego.Error(userName)
		}
	}

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

以上就是Go语言中操作MySQL数据库的方法的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码
  • 相关标签:Go语言 MySQL
  • 本文转载于:csdn,如有侵犯,请联系a@php.cn删除
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • php查询Mysql内容:首先php页面在进行浏览时需要有php执行环境;然后建立php类文件【mysql.php】进行具体;接着建立页面文件【index.php】进行接收
    golang需要基础是:首先初学Go要弄懂基础和概念;然后掌握文件、网络编程、锁、协程、对象序列化和反序列化,以及各种格式封装等;最后接触等,就可以模块化开发。
    创建一个是:可以在登录mysql服务后,使用create命令来创建。
    php查询:1、使用函【mysql_connect()】建立和MYSQL连接;2、使用函【mysql_select_db()】指定要;3、使用函【mysql_query
    mysql创建是:可以通过CREATE TABLE句来创建,基本:【CREATE TABLE <表名> ([表定义选项])[表选项][分区选项];】。
    php文字符乱码解决办:1、改mysql配置文件“my.ini”或“my.cnf”;2、在需要做php程序前加入句“mysql_query("set names '编码'&
    php把mysql转成json格式:首先mysql测试表,并新建【testmysql.php】文件来测试;然后用执行查询句;接着将放到user对象;最后用【json_encode
    phpmyadmin搜索表:首先登录管理界面,并点击【】标签页;然后点击要;接着选择要表,并点击【搜索】;最后输入搜索条件,并点击【执行】即可。
    php mysql查询:首先创建php mysql连接;然后设置SQL句,用于从读取字段信息;接着使用SQL句从取出结果集并赋给变量“$result”;最后返回信息即可
    用PHP查询MySQL:首先在PHP代码实例化PDO,实例化参需要传入DNS、用户名和密码;然后编写查询句;接着使用PDO对象将句进行执行;最后获取结果集即可。
    Java连接,【Java Database Connectivity,简称JDBC】是Java用来规范客户端程序如何来访问应用程序接口,提供了诸如查询和更新
    sql查看表结构:首先打开mysql命令行编辑器并登录Mysql;然后选择一个我们要创建表;最后输入describe表名就可以显示表结构了。
    PHP没有间件,导致了对很多麻烦。比如,对必须要链接,然后做SQL
    PHP+MYSQL进行查询:1、函【mysql_fetch_object()】,从结果集取得一行为对象,并将字段名字做为属性;2、函【mysql_num_rows()】获取由select
    phpmysql增删改查:1、插入句【insert into 表名(字段1,字段2,....) values("值1","值2",..)】;2、删除
    php实现用户注册登陆:首先创建及表单;然后使用php文件连接;接着修改php文件实现登录注册;最后进一步完善完成登录即可。
    mysql删除多个表格:首先在两个表之间建立级联删除关系;然后通过【delete t1,t2 from t1,t2 where 条件】句实现删除一个表时,同时删除另一个表相关即可
    单表查询:1、select查询,筛选列;2、where句,筛选行;3、group by分组;4、having过滤条件,是针对组做过滤条件,是放在group by后面执行;5、order
    mysql1045错误解决:首先找到MySQL安装路径下【my.ini】文件,并用记事本打开;然后找到mysqld这个位置;接着在【mysqld】底下添加句【skip-grant-tables
    ajax php实现表格删除:首先连接;然后在PHP文件把传过来值赋给变量“$i”,并根值执行相应删除;接着在js文件实现删除判断;最后循环输出查询结果并删除即可。

    专题推荐

    推荐视频教程
  • MySql参考手册MySql参考手册
  • Go 中文开发手册Go 中文开发手册
  • MySQL数据库技术小知识每日分享MySQL数据库技术小知识每日分享
  • go语言基础与基本函数go语言基础与基本函数
  • 视频教程分类