章节

写在前面

go 操作 MySQL

感想

1.写在前面

接下来的记录中会附带记录当日工作学习到的东西,包括且不限于 技术、软实力-沟通、心态、理财、个人思考等

2.go 操作MySQL

如Java操作数据库,编程逻辑如下:

驱动加载、获取连接(connect)、生成Statement || PrepareStatement 对象、sql传参、exec or query、获取结果集 Resultset,go 操作MySQL的步骤也是如上步骤。

注意:go 加载驱动 需要依靠远程 import 的 驱动包 github.com/go-sql-driver/mysql

如下代码所示,演示了 基础操作 CURD

DbOperate.go

package DB

import (

"database/sql"

"fmt"

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

)

//返回数据库连接句柄

func connDb() *sql.DB {

db, err := sql.Open("mysql", "root:@tcp(127.0.0.1:3306)/demo?charset=utf8")

checkErr(err)

return db

}

//insert

func DoInsert(sql string) {

db := connDb()

sql = "insert into test(name) value (?)"

stmt, err := db.Prepare(sql)

checkErr(err)

res, err := stmt.Exec("bofengliu")

checkErr(err)

fmt.Printf("成功了,%v", res)

}

//delete

func DoDelete(id int) {

db := connDb()

sql := "delete from test where id = ?"

stmt, err := db.Prepare(sql)

checkErr(err)

res, err := stmt.Exec(id)

checkErr(err)

res = nil

fmt.Println(res)

}

//update

func DoUpdate(name string, id int) int64 {

db := connDb()

sql := "update test set name = ? where id = ?"

stmt, err := db.Prepare(sql)

checkErr(err)

res, err := stmt.Exec(name, id)

checkErr(err)

affect, err := res.RowsAffected()

fmt.Println("影响数据集行数为", affect)

return affect

}

func DoQueryByName(name string) {

sql := "select * from test where name = \"" + name + "\""

db := connDb()

res, err := db.Query(sql)

checkErr(err)

for res.Next() {

var id int

var name string

err := res.Scan(&id, &name)

checkErr(err)

fmt.Println(id)

fmt.Println(name)

}

}

func checkErr(err error) {

if err != nil {

panic(err.Error())

}

}

数据表结构如下所示:

CREATE TABLE `test` (

`id` int(11) unsigned NOT NULL AUTO_INCREMENT,

`name` varchar(11) DEFAULT NULL,

PRIMARY KEY (`id`),

KEY `name` (`name`),

KEY `idx_name` (`name`)

) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8 |

上述代码中通过import 引入了 github.com/go-sql-driver/mysql,注意前方有 _ ,此代表 引入的远程包 不会在代码中直接使用,而是被程序间接加载,加载位置为 db, err := sql.Open("mysql", "root:@tcp(127.0.0.1:3306)/demo?charset=utf8")

源代码如下所示:

// 支持多种驱动加载 ,当前程序中加载驱动为MySQL 驱动

func Open(driverName, dataSourceName string) (*DB, error) {

driversMu.RLock()

driveri, ok := drivers[driverName]

driversMu.RUnlock()

if !ok {

return nil, fmt.Errorf("sql: unknown driver %q (forgotten import?)", driverName)

}

if driverCtx, ok := driveri.(driver.DriverContext); ok {

connector, err := driverCtx.OpenConnector(dataSourceName)

if err != nil {

return nil, err

}

return OpenDB(connector), nil

}

return OpenDB(dsnConnector{dsn: dataSourceName, driver: driveri}), nil

}

经测试 没有问题,此为go 操作 MySQL 初体验。

3.感想

基础要牢靠,越是简单的东西,越需要记录。

完。

go mysql stmt exec_Go语言操作MySQL相关推荐

  1. c web mysql数据库_C语言操作MySQL数据库

    原作者博客http://www.cnblogs.com/nliao/archive/2010/09/09/1822660.html 先看结构体 ---------------------------- ...

  2. Go语言操作MySQL

    MySQL是业界常用的关系型数据库,本文介绍了Go语言如何操作MySQL数据库. Go操作MySQL 连接 Go语言中的database/sql包提供了保证SQL或类SQL数据库的泛用接口,并不提供具 ...

  3. go语言mysql操作_使用Go语言操作MySQL数据库的思路与步骤

    最近在做注册登录服务时,学习用Go语言操作MySQL数据库实现用户数据的增删改查,现将个人学习心得总结如下,另外附有代码仓库地址,欢迎各位有兴趣的fork. 软件环境:Goland.Navicat f ...

  4. c语言连接数据库例子,c语言操作mysql数据库小例子_互帮互助(C language MySQL database operation example _ mutual help).doc...

    这是精心收集的精品经典资料,值得下载保存阅读! c语言操作mysql数据库小例子_互帮互助(C language MySQL database operation example _ mutual h ...

  5. c语言连接mysql(入门)_MySQL入门之C语言操作MySQL

    基本概念 C APIs包含在mysqlclient库文件当中,与MySQL的源代码一块发行,用于连接到数据库和执行数据库查询.#include #include #include #include # ...

  6. golang mysql curd_Go 语言操作 MySQL 之 CURD 操作

    本文转载于SegmentFault社区 作者:Meng小羽 MySQL 是目前开发中最常见的关系型数据库,使用 Go 语言进行操控数据库需要使用 Go 自带database/sql和驱动go-sql- ...

  7. C语言操作MYSQL小例子

    http://blog.csdn.net/small_qch/article/details/8180678 初学使用用C语言操作MYSQL,写了个小例子,帖上来献丢人一下,呵呵. 程序很简单,先连接 ...

  8. Linux C语言操作MySQL

    1.MySQL数据库简介 MySQL是一个开源码的小型关系数据库管理系统,体积小,速度快,总体成本低,开源.MySQL有以下特性: (1) 使用C和C++编写,并使用了多种编译器进行测试,保证源码的可 ...

  9. linux下c语言调用mysql,Linux下C语言操作MYSQL总结

    Linux下C语言操作MYSQL总结 发布时间:2006-12-17 00:40:00来源:红联作者:anciens 下文的用到的数据库表: 数据库中存在表table, 有name(varchar类型 ...

  10. 用C语言操作MySQL数据库-通用版

    用C语言操作MySQL数据库 先看结构体: 以下代码块是用来连接数据库的通讯过程,要连接MYSQL,必须建立MYSQL实例,通过mysql_init初始化方能开始进行连接. typedef struc ...

最新文章

  1. docker 时间不一致,时区设置
  2. 查看tp框架版本方法
  3. vueform表单文件上传_峰哥说技术系列-8.Spring Boot文件上传(Form表单和Ajax方式)
  4. 在Arcmap中加载互联网地图资源的4种方法
  5. 参数化测试 junit_JUnit中的参数化测试运行器
  6. webpack系列-plugin
  7. Java Web整合开发(13) -- XML
  8. java - 抽象类、接口、内部类
  9. column分栏布局只是文字布局吗_CSS3 column 分栏
  10. Linux下更改Python的软连接
  11. PKUSC2019划水记
  12. installshield脚本入门
  13. 计算机应用基础自主学习,计算机应用基础教学中如何培养学生的自主学习能力...
  14. 《东周列国志》第一百回 鲁仲连不肯帝秦 信陵君窃符救赵
  15. 百度账号管理静态页面
  16. 解决SQL适配器连接到字符集为US7ASCII的Oracle数据库的中文乱码问题
  17. 如何用快启动pe修复win10系统引导? 神器
  18. class torch.optim.lr_scheduler.LambdaLR
  19. 西瓜直播弹幕阅读器 python
  20. 一篇文章读完50篇摄影教程(托马斯的2016总结)

热门文章

  1. 变压器的分类_变压器的作用
  2. 【笔记】《编写高质量代码:改善c#程序的157个建议》-第1章 基本语言要素(SamWang)...
  3. C/c++ http请求
  4. 软件工程导论 四则运算
  5. 广播接收者的特点和版本差异
  6. django复习笔记2:models
  7. Android 设计模式:(一)策略模式 —— 封装行为的大局观
  8. void main()误区
  9. 孙鑫VC学习笔记:第十三讲 (三) WM_FILE_NEW消息响应原理
  10. 光盘显示0字节可用_AT89C2051单片机开发点钞机外接显示屏