go-mysql查询单条数据_golang 操作mysql示例(增、删、改、查、事务)

准备

go的系统包里是没有数据库驱动的,首先先从git上下载mysql包,golang下载资源包相当方便,打开命令行,输入命令:go get -u github.com/go-sql-driver/mysql (使用git命令下载资源包,需要先安装git,没安装git的同学可以手动下载后放入src目录下)。!

bVbDbCy

下载完成会在GOPATH下的src里多了资源包

bVbDbLi

下载完成后,在项目里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 = ?", 1)

rows.Scan(&doc.ID, &doc.Name, &

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用Golang进行操作时,通常需要使用数据库驱动程序来连接数据库。下面是一个使用Golang进行示例: 首先,你需要导入所需的包: ```go import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) ``` 然后,你需要建立数据库连接: ```go db, err := sql.Open("mysql", "用户名:密码@tcp(localhost:3306)/数据库名") if err != nil { // 处理连接错误 } defer db.Close() ``` 接下来,我们可以进行加、除、修查询操作。 1. 数据: ```go stmt, err := db.Prepare("INSERT INTO 表名 (字段1, 字段2) VALUES (?, ?)") if err != nil { // 处理准备语句错误 } defer stmt.Close() _, err = stmt.Exec(值1, 值2) if err != nil { // 处理执行语句错误 } ``` 2. 数据: ```go stmt, err := db.Prepare("DELETE FROM 表名 WHERE 条件") if err != nil { // 处理准备语句错误 } defer stmt.Close() _, err = stmt.Exec(参数) if err != nil { // 处理执行语句错误 } ``` 3. 修数据: ```go stmt, err := db.Prepare("UPDATE 表名 SET 字段1 = ?, 字段2 = ? WHERE 条件") if err != nil { // 处理准备语句错误 } defer stmt.Close() _, err = stmt.Exec(值1, 值2, 参数) if err != nil { // 处理执行语句错误 } ``` 4. 查询数据: ```go rows, err := db.Query("SELECT 字段1, 字段2 FROM 表名 WHERE 条件", 参数) if err != nil { // 处理查询错误 } defer rows.Close() for rows.Next() { var 字段1 类型1 var 字段2 类型2 err := rows.Scan(&字段1, &字段2) if err != nil { // 处理扫描错误 } // 处理查询结果 fmt.Println(字段1, 字段2) } ``` 这些示例代码可以帮助你开始在Golang中进行操作。请根据你的具体需求进行相应的调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值