golang数据库的操作,更新删除增加单行查找与多行查找
目录
1.插入
2.查找单行
3.查找多行
4.更新
5.删除
完整示例:
1.插入
func insert() {s := "insert into users (username,password) values(?,?)"r, err := db.Exec(s, "yjy", "123456")if err!=nil {println(err)}else {id, _ := r.LastInsertId()//默认情况下他是返回 主键且自增长的字段值,否则返回0println(id)}
}
func insert2(username string,password string) {s := "insert into users (username,password) values(?,?)"r, err := db.Exec(s, username, password)if err!=nil {println(err)}else {id, _ := r.LastInsertId()println(id)}
}
2.查找单行
func queryOneRow() {s := "select * from users where id=?"var u Usererr := db.QueryRow(s, 3).Scan(&u.username, &u.password, &u.id) //scan就是将查询的结果赋值给另外一个结果,注意写地址if err!=nil {println(err)}else {fmt.Println(u)}
}
3.查找多行
func queryManyRow() {s := "select * from users"query, err := db.Query(s)var u Userdefer query.Close()if err!=nil{print(err)}else {for query.Next(){err := query.Scan(&u.username, &u.password, &u.id)if err!=nil {println(err)}else {fmt.Println(u)}}}
}
4.更新
func update() {s := "update users set username=?,password=? where id=?"exec, err := db.Exec(s, "yes", "123456", 2)if err!=nil {println(err)}else {affected, _ := exec.RowsAffected()//改变了几行fmt.Println(affected)}
}
5.删除
func delete(id int) {s := "delete from users where id=?"exec, err := db.Exec(s, id)if err!=nil{fmt.Println(err)}else {affected, _ := exec.RowsAffected()fmt.Println(affected)}
}
其实除了sql语句不一样之外,剩下的都差不多。
之后再main函数中直接方法名调用就可以啦~
完整示例:
package mainimport ("database/sql""fmt"_ "github.com/go-sql-driver/mysql"
)
//定义一个全局对象db
var db *sql.DBfunc initDB() (err error) {dsn:="root:123456@tcp(127.0.0.1:3306)/go?charset=utf8mb4&parseTime=True"//注意这里不能用:=,我们是给全局变量赋值,然后在main函数中使用全局变量dbdb,err=sql.Open("mysql",dsn)if err!=nil {return err}//尝试与数据库建立链接(校验dsn是否正确)err=db.Ping()if err!=nil {return err}return nil
}
func insert() {s := "insert into users (username,password) values(?,?)"r, err := db.Exec(s, "yjy", "123456")if err!=nil {println(err)}else {id, _ := r.LastInsertId()//默认情况下他是返回 主键且自增长的字段值,否则返回0println(id)}
}
func insert2(username string,password string) {s := "insert into users (username,password) values(?,?)"r, err := db.Exec(s, username, password)if err!=nil {println(err)}else {id, _ := r.LastInsertId()println(id)}
}type User struct {id intusername stringpassword string
}
func queryOneRow() {s := "select * from users where id=?"var u Usererr := db.QueryRow(s, 3).Scan(&u.username, &u.password, &u.id) //scan就是将查询的结果赋值给另外一个结果,注意写地址if err!=nil {println(err)}else {fmt.Println(u)}
}
func queryManyRow() {s := "select * from users"query, err := db.Query(s)var u Userdefer query.Close()if err!=nil{print(err)}else {for query.Next(){err := query.Scan(&u.username, &u.password, &u.id)if err!=nil {println(err)}else {fmt.Println(u)}}}
}
func update() {s := "update users set username=?,password=? where id=?"exec, err := db.Exec(s, "yes", "123456", 2)if err!=nil {println(err)}else {affected, _ := exec.RowsAffected()//改变了几行fmt.Println(affected)}
}
func delete(id int) {s := "delete from users where id=?"exec, err := db.Exec(s, id)if err!=nil{fmt.Println(err)}else {affected, _ := exec.RowsAffected()fmt.Println(affected)}
}
func main() {fmt.Println("hellp")定义一个全局变量DB//db, err := sql.Open("mysql", "root:123456@/go")//if err != nil {// fmt.Println("cuowu ")//}else {// fmt.Println("chengg")//}See "Important settings" section.最大连接时长//db.SetConnMaxLifetime(time.Minute * 3)最大连接数//db.SetMaxOpenConns(10)空闲连接数//db.SetMaxIdleConns(10)////println(db)err := initDB()if err!=nil {fmt.Println(err)}else {fmt.Println("连接成功!")}//insert()//insert2("qxx","123")//queryOneRow()//queryManyRow()//update()delete(2)
}
golang数据库的操作,更新删除增加单行查找与多行查找相关推荐
- 数据库常用操作之删除重复数据且仅保留一条
数据库常用操作之删除重复数据且仅保留一条 单字段操作 查询全部重复的数据 MySQL实现 Oracle实现 查询表中重复数据(id最小除外) MySQL实现 删除表中多余重复数据并且只留1条 MySQ ...
- mybatis对数据库的操作,删除表,新建表,修改表。
mybatis对数据库操作 事情是这样的,今天一不小心接到一个这样的需求,调用远程接口获取数据,每周定时更新全部数据,这不挺好整的嘛!!!!!!!!! 但是,更新之前需要把之前的那个表的数据做备份,把 ...
- mysql受影响的行 0_为什么更新/删除成功时受影响的行返回0?
我有声明: INSERT INTO infotbl(name, phone) VALUES('Alex', '9999999'); 并更新它: UPDATE infotbl SET name = 'A ...
- Go 学习笔记(55)— Go 标准库 sql (初始化数据库、插入、更新、删除数据库表、单行查询、多行查询、事务处理)
1. 标准库说明 Go 的标准库中是没有数据库驱动,只提供了驱动接口,有很多第三方实现了驱动,我们这里选择 go-sql-driver 这个实现是目前使用最多的.github 地址是:https:// ...
- QTP中对数据库的操作(查询,更新和删除等)
标题为QTP对数据库的操作,其实应该改为QTP/VBS对数据库的操作.因为QTP中就是通过vbs完成数据库操作的.以access为例. 通过ADO对数据库访问的步骤如下: a.创建一个到数据库的 AD ...
- 数据库级联操作mysql_Oracle数据库中的级联查询、级联删除、级联更新操作教程...
级联查询在ORACLE 数据库中有一种方法可以实现级联查询 select * //要查询的字段 from table //具有子接点ID与父接点ID的表 start with selfid=id // ...
- WEB数据库管理平台kb-dms:数据库查询+更新+删除操作【六】
数据库查询+更新+删除操作 kb-dms平台为用户提供了命令行窗口执行的功能可以进行查询等操作,还提供了快捷键的方式及在线编辑的功能等. 窗口命令行操作数据库 命令行窗口有表名提示功能及sql关键字提 ...
- 大数据技术之_20_Elasticsearch学习_01_概述 + 快速入门 + Java API 操作 + 创建、删除索引 + 新建、搜索、更新删除文档 + 条件查询 + 映射操作
大数据技术之_20_Elasticsearch学习_01 一 概述 1.1 什么是搜索? 1.2 如果用数据库做搜索会怎么样? 1.3 什么是全文检索和 Lucene? 1.4 什么是 Elastic ...
- 大数据技术之_20_Elasticsearch学习_01_概述 + 快速入门 + Java API 操作 + 创建、删除索引 + 新建、搜索、更新删除文档 + 条件查询 + 映射操作...
一 概述1.1 什么是搜索?1.2 如果用数据库做搜索会怎么样?1.3 什么是全文检索和 Lucene?1.4 什么是 Elasticsearch?1.5 Elasticsearch 的适用场景1.6 ...
- 31-32 python mysql-connector创建数据、crud,where,排序,删除等。PyMSQL驱动,插入操作、查询操作、更新操作、删除操作、执行
31Python MysSQL - mysql-connector驱动 使用pip命令安装mysql-connector: python -m pip install mysql-connector ...
最新文章
- CSS3学习——设计优雅的数据表格
- Linux命令 — 设置或查看网络配置命令ifconfig
- IntelliJ IDEA+Mysql connecter/j JDBC驱动连接
- nfc sim android8,Android NFC相关资料之MifareClassic卡(读写)
- python中的库有哪些餐厅_2017,最受欢迎的 15 大 Python 库有哪些?
- ansible 基本操作(初试)
- 力排众议,自由软件之父 RMS 正式回归 FSF!
- 图像数集据增广的15+种功能总结和Python代码实现
- bcb6通过https接口post数据_3分钟短文 | 有挑战!PHP用1个函数实现post请求,你用哪个?
- XP引导Ubuntu--Ubuntu手记之系统配置
- Wooden Signs Gym - 101128E (DP)
- js高程读书笔记(1-3章)
- android点击按钮执行adb命令,Android 按键事件及adb命令模拟
- 固高运动卡的使用 5 插补运动模式之-直线插补运动
- html中怎么给地图添加标记,百度地图中怎么添加旗帜标记?
- 【algorithm】源码详解中国大陆新身份证号码算法
- C语言:递归实现Ackman函数
- 【FFmpeg杂记】音频解码输出PCM格式数据分析
- 特斯拉数字车钥匙卡评价
- S3存储桶策略(S3 Bucket Policies)
热门文章
- Python手册(Python Basics)--Python基础
- 【python文本分析】——基于股评文本的情绪分析
- 如何利用3Dslicer将mhd格式三维图像迅速转换为tif单张图片
- NUC980 DIY项目大挑战 - EtherCAT实现
- matlab实现聚类算法
- 【网络】趣谈网络协议总结
- css html设计网页完整代码,htmlcss完整的网页代码
- 计算机学院边浩东,热烈祝贺建设信息工程系学生在“新华三杯”全国大学生数字技术大赛上取得优异成绩...
- 地图标识符号大全_资源小结:旅游类地图汇总(8.17版)
- vs2019MSDN(离线帮助文档)的下载与使用