Golang要操作mysql数据库,首先需要在当期系统配置GOPATH,因为需要使用go get命令把驱动包下载到GOPATH下使用。

首先配置好你的GOPATH,执行以下命令,下载安装mysql驱动,下载完成之后会在GOPATH下的src/github.com目录下

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

然后本地的mysql服务要启动,并创建一个表作为测试

DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(50) CHARACTER SET latin1 NOT NULL DEFAULT '',`age` tinyint(4) DEFAULT '0',PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

连接mysql数据库命令

//mysql数据库,用户名:密码@tcp连接:端口3306/test库?字符集utf8
db, err := sql.Open("mysql", "root:root@tcp(127.0.0.1:3306)/test?charset=utf8") //返回连接字符,和err

增删改查代码(导入mysql驱动包,并使用datebase/sql Open函数进行连接)

package mainimport ("database/sql" // 这是一个抽象层包,比如区分mysql、orcal等数据库,只有这个包是连接不上mysql的,还需要搭配下面的mysql包"fmt"_ "github.com/go-sql-driver/mysql" //导入mysql驱动包
)func init() {}func main() {db, err := sql.Open("mysql", "root:root@tcp(127.0.0.1:3306)/test?charset=utf8")if err != nil {panic(err)}//增加数据stmt, err := db.Prepare(`INSERT student (name,age) values (?,?)`)res, err := stmt.Exec("wangwu", 26)id, err := res.LastInsertId()fmt.Println("自增id=", id)//修改数据stmt, err := db.Prepare(`UPDATE student SET age=? WHERE id=?`)res, err := stmt.Exec(21, 5)num, err := res.RowsAffected() //影响行数
        fmt.Println(num)//删除数据stmt, err := db.Prepare(`DELETE FROM student WHERE id=?`)res, err := stmt.Exec(5)num, err := res.RowsAffected()fmt.Println(num)//查询数据rows, err := db.Query("SELECT * FROM student")//--------简单一行一行输出---start//    for rows.Next() { //满足条件依次下一层//        var id int//        var name string//        var age int//        rows.Columns()//        err = rows.Scan(&id, &name, &age)//        fmt.Println(id)//        fmt.Println(name)//        fmt.Println(age)//    }//--------简单一行一行输出---end//--------遍历放入map----start//构造scanArgs、values两个数组,scanArgs的每个值指向values相应值的地址columns, _ := rows.Columns()scanArgs := make([]interface{}, len(columns))values := make([]interface{}, len(columns))for i := range values {scanArgs[i] = &values[i]}for rows.Next() {//将行数据保存到record字典err = rows.Scan(scanArgs...)record := make(map[string]string)for i, col := range values {if col != nil {record[columns[i]] = string(col.([]byte))}}fmt.Println(record)}//--------遍历放入map----end
}

转载于:https://www.cnblogs.com/wt645631686/p/9691606.html

Golang原生sql操作Mysql数据库增删改查相关推荐

  1. beego原生mysql查询_Beego基础学习(五)Golang原生sql操作Mysql数据库增删改查(基于Beego下测试)...

    //控制器文件 package controllers import ("fmt" "github.com/astaxie/beego" "mypro ...

  2. Python FastAPI 框架 操作Mysql数据库 增删改查

    2 比 1 更容易理解,可以先看2(单文件级别) 1.FastAPI 框架 操作Mysql数据库(项目多文件级别) FastAPI 可以使用任何您想要的关系型数据库. 在这里,让我们看一个使用着SQL ...

  3. js修改mysql数据库数据_Node.js操作mysql数据库增删改查

    关于node.js操作mysql数据库的相关介绍请阅读全文吧.下文介绍的非常详细,具体内容如下所示: 安装mysql模块 npm install mysql 数据库准备 mysql server所在的 ...

  4. Django操作mysql数据库增删改查

    一.Django是什么 Python下有许多不同的 Web 框架.Django是重量级选手中最有代表性的一位.许多成功的网站和APP都基于Django. Django是一个开放源代码的Web应用框架, ...

  5. python mysql dbutils_python操作mysql数据库增删改查的dbutils实例

    #encoding=utf-8 importMySQLdbimportgconf#主类 classMysqlConnection(object):def __init__(self, host, po ...

  6. 怎么用php操作mysql删除数据库代码_如何使用php操作mysql的增删改查?

    php操作mysql的增删改查方法:1.插入语句[insert into 数据表名(字段1,字段2,....) values("值1","值2",..)]:2. ...

  7. jdbc链接mysql按照id查询_使用jdbc连接并操作Oracle数据库(增删改查IDUS)

    使用jdbc连接并操作Oracle数据库(增删改查IDUS) [oracle@zaibei-db ~]$ sqlplus /nolog SQL*Plus: Release 11.2.0.4.0 Pro ...

  8. python操作Oracle、PostgreSQL,MySql数据库增删改查

    python操作Oracle.PostgreSQL,MySql数据库增删改查,工作中可运行案例,直接上代码,供大家参考. # _*_ coding:UTF-8 _*_#import ServerCon ...

  9. mfc连接mysql增删改查_java实现mysql数据库增删改查

    1.连接数据库: import java.sql.Connection; import java.sql.DriverManager; public class DBConnection { stat ...

最新文章

  1. Anaconda,pytorch如何安装中文版的BERT和使用
  2. MySQL数据备份语句
  3. mui 打开openWindow新页面不读取缓存的设置/mui中h5清除缓存页面的办法
  4. 代码视图与StoryBoard.Xib文件视图的跳转
  5. LeetCode MySQL 1607. 没有卖出的卖家
  6. Redis 中的过期元素是如何被处理的?「视频版」——面试突击 002 期
  7. 企业即时通讯市场增长500%
  8. MySQL基础篇(01):经典实用查询案例,总结整理
  9. Python 2.7 系统模块学习(1) Built-in 函数
  10. Touch事件分发源码解析
  11. 运行时库(runtime library)
  12. 2019华为网络技术大赛模拟题
  13. 量子加密技术成功在人工智能产品上的应用落地
  14. 渗透测试工程师面试题大全(二)
  15. 哈希函数及哈希函数的特性
  16. 解决github频繁输入密码问题和git@github.com:Permission denied (publickey)问题
  17. HC-SR04 超声波测距模块说明
  18. Kubernetes中配置livenessProbe、readinessProbe和startupProbe
  19. java:字符和字节区别
  20. 转来的,激励激励自己

热门文章

  1. 【python教程入门学习】迭代器、生成器和可迭代对象
  2. fiddler汉化版可以改成英文吗_可以把推拉门改成平开窗吗?推拉门和平开窗哪个更好?...
  3. 中科院自动化所与华为联合提出!视觉目标检测大模型GAIA
  4. 收藏 | 详解PyTorch中的ModuleList和Sequential
  5. mysql无损复制_MySQL无损复制(转)
  6. 基于Tensorflow实现DeepFM
  7. 深度学习(三十三)CRF as RNN语义分割-未完待续
  8. C++ vector类型要点总结(以及各种algorithm算法函数)
  9. 地理数据分布的集中化与均衡度指数
  10. 2020年软考信息安全工程师考试学习资料包