Golang-使用mysql
一、安装mysql-driver驱动
go get github.com/go-sql-driver/mysql
二、安装完毕之后,就可以通过go语言操作mysql了
const (
_selectUser = "select name,age from user where id = ?"
_updateUser = "update user set name = ? where name = ?"
_insertUser = "insert user (name,age) values (?,?)"
_deleteUser = "delete user where id = ?"
)
func main () {
var (
err error
)
// 得到一个db对象
// Open方法第二个参数: 用户名:密码@协议(ip:端口)/数据库
db,err := sql.Open("mysql","root:root@tcp(127.0.0.1:3306)/day0731")
if err != nil {
fmt.Println(err)
return
}
defer db.Close()
// 这里我们拿到了db这个对象,就可以对day0731这个mysql数据库进行操作了
// 查询操作
// Query方法,返回值具体类型自己看
var (
name string
age int
)
resultRows,err := db.Query(_selectUser,1)
// 这里的name,age必须和sql语句顺序一致,也不能多传,也不能少传
err = resultRows.Scan(&name,&age)
if err != nil {
fmt.Println(err)
retrun
}
fmt.Println(name)
fmt.Println(age)
// QueryRow方法,查询的效果和上面一致
err = db.QueryRow(_selectUser,1).Scan(&name,&age)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(name)
fmt.Println(age)
// 插入、更新、删除操作
// Exec方法,执行一段sql语句
result,err := db.Exec(_updateUser,"朱春雨","朱宇")
if err != nil {
fmt.Println(err)
return
}
// result这个对象,他有两个方法,RowsAffected(),LastInsertId(),
// 分别返回影响的行数,还有就是最后插入的id
// 我们这里执行的是更新语句,就看这个方法就好了RowsAffected
rowCount,err := result.RowsAffected()
if err != nil {
fmt.Println(err)
return
}
if rowCount == 0 {
fmt.Println("更新操作失败")
return
}
fmt.Println("更新操作成功!")
}
三、对mysql的增删查改用Query,Exec方法就ok了,具体其他的方法参考go语言的官方文档
Golang-使用mysql的更多相关文章
- [转帖]golang操作mysql使用总结
golang操作mysql使用总结 https://www.cnblogs.com/hanyouchun/ 讲解的很详细~ 前言 Golang 提供了database/sql包用于对SQL数据库的访问 ...
- golang 的 mysql 操作
goLang的mysql操作,大致可分为三个步骤: 1.下载mysql驱动:go get github.com/go-sql-driver/mysql 2.建立连接:sql.Open("my ...
- golang操作mysql数据库
golang操作mysql数据库 代码: mysql的增.删.改.查 package main import ( "database/sql" "fmt" &q ...
- Golang操作MySQL的正确姿势
封装原因: 查看了很多网上提供的ORM类型的数据库操作,觉得比较麻烦,需要提前配置很多的表结构体,然后才能使用,对于数据表很多的项目就配置起来就比较麻烦,所以对golang的mysql包进行了外层包装 ...
- 使用golang理解mysql的两阶段提交
使用golang理解mysql的两阶段提交 文章源于一个问题:如果我们现在有两个mysql实例,在我们要尽量简单地完成分布式事务,怎么处理? 场景重现 比如我们现在有两个数据库,mysql3306和m ...
- golang操作mysql使用总结
前言 Golang 提供了database/sql包用于对SQL数据库的访问, 作为操作数据库的入口对象sql.DB, 主要为我们提供了两个重要的功能: sql.DB 通过数据库驱动为我们提供管理底层 ...
- Mysql学习(一)添加一个新的用户并用golang操作Mysql
Mysql添加一个新的用户并赋予权限 添加一个自己的用户到mysql 首先我们需要先用root用户登录mysql,但是刚安装完没有密码,我们先跳过密码 ailumiyana@ailumiyana:~/ ...
- golang实现mysql数据库备份
背景 navicat是mysql可视化工具中最棒的,但是,在处理视图的导入导出方面,它是按照视图名称的字母顺序来处理的,若视图存在依赖,在导入过程中就会报错.前面已经用python写了一个,但在使用过 ...
- 使用golang插入mysql性能提升经验
前言 golang可以轻易制造高并发,在某些场景很合适,比如爬虫的时候可以爬的更加高效.但是对应某些场景,如文件读写,数据库访问等IO为瓶颈的场合,就没有什么优势了. 前提基础 1.golang数据库 ...
- [Go] golang实现mysql连接池
golang中连接mysql数据库,需要使用一个第三方类库github.com/go-sql-driver/mysql,在这个类库中就实现了mysql的连接池,并且只需要设置两个参数就可以实现 一般连 ...
随机推荐
- ACM数据结构-单调栈、队列
1.最大数 代码: #include <stdio.h> #include <memory.h> #include <math.h> #include <st ...
- SQL进阶-行转列&列转行
一.行转列 1.建表 CREATE TABLE score( student_id ) NOT NULL COMMENT '学生编号' DEFAULT '', student_name ) NOT N ...
- 04-树6 Complete Binary Search Tree (30 分)
A Binary Search Tree (BST) is recursively defined as a binary tree which has the following propertie ...
- 状压dp专题复习
状压dp专题复习 (有些题过于水,我直接跳了) 技巧总结 : 1.矩阵状压上一行的选择情况 \(n * 2^n\) D [BZOJ2734][HNOI2012]集合选数 蒻得不行的我觉得这是一道比较难 ...
- mysql 导出查询结果
show variables like '%secure%'; 看看导出位置 SELECT * FROM tb WHERE sn = '1' LIMIT 1,10into outfile '/var/ ...
- 类中嵌套定义指向自身的引用(C、C++、C#)或指针(C、C++)
在定义类的时候,类中可以嵌套定义指向自身的引用(C.C++.C#)或指针(C.C++).详见代码: Node类: using System; using System.Collections.Gene ...
- Android Sensor 架构深入剖析【转】
本文转载自: 1.Android sensor架构 Android4.0系统内置对传感器的支持达13种,它们分别是:加速度传感器 (accelerometer).磁力传感器(magnetic fiel ...
- mysql 8.0.18 hash join测试(内外网首文)
CREATE TABLE COLUMNS_hj as select * from information_schema.`COLUMNS`; INSERT INTO COLUMNS_hj SELECT ...
- css3中的盒子模型
1.示例一 实现左右布局,左侧宽度200px,右侧自适配 代码如下: <!DOCTYPE html> <html lang="en"> <head&g ...
- 在easyui-tabs中的href或 content的多种条件下的不同页面内容和页面地址的赋值?
$('#tt').tabs('add', {.....});中 的 加载内容, 可以用content, 或用 href都是可以的. 虽然它们加载 的方式不一样, 但是 只要是加载进去后, 加载成功后, ...