import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
"strings"
)
// 定义要被查询的结构体
// 字段和数据库基本一致
type Email struct {
Id int
UserId string
Email string
Subscribe sql.NullInt64 // Subscribe 字段可能为null 所以使用sql.Null 开头的类型作为字段类型定义
}
func main() {
// 数据库连接: 格式为: 用户名:密码@tcp(IP:端口)/库名?charset=utf8
path := strings.Join([]string{"root", ":", "123", "@tcp(127.0.0.1:3306)/test?charset=utf8"}, "")
db, err := sql.Open("mysql", path)
if err != nil {
fmt.Println("conn error: ", err)
}
db.SetConnMaxLifetime(10) // 设置数据库最大连接数
db.SetMaxOpenConns(10) // 设置数据最大闲置
// 普通插入方式
//res, err := db.Exec("INSERT INTO emails(user_id, email) VALUES (11, 'abc@qq.com')")
// 事务的方式来插入数据
tx, err := db.Begin()
ins, err := tx.Prepare("INSERT INTO emails(user_id, email) VALUES (?, ?)")
res, err := ins.Exec(132, "yangzhaoss")
fmt.Println()
if err == nil {
fmt.Println(res.LastInsertId()) // 获取自增id
}else {
fmt.Println(err)
}
// 删除操作
del, err := tx.Prepare("DELETE FROM emails WHERE user_id = ?")
if err == nil {
res, err = del.Exec(132)
tx.Commit()
}else {
fmt.Println(err)
}
// 查找操作
// 单行查询 用QueryRow函数查询, 并且利用Scan将查询结果赋值到对应的对象中
// 多行查询: 执行Query函数, 利用Next() 读取每一行返回的结果,并Scan赋值到相应的对象中。
// 对于数据库中可能为Null的字段, 在结构体中设置字段类型为sql.Null 开头的对应类型
rows, err := db.Query("select * from emails")
var emails []Email
if err == nil {
for rows.Next() {
var email Email
err := rows.Scan(&email.Id, &email.UserId, &email.Email,&email.Subscribe)
if err != nil {
fmt.Println("Rows fail: ", err)
}
emails = append(emails, email)
}
// 对于可能为null的字段 要设置为 sql.Null 对应的字段
}
for _, v := range emails {
fmt.Println(v.Id, v.UserId, v.Email, v.Subscribe)
}
}
以上所述就是小编给大家介绍的《golang操作mysql》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
数据结构与算法JavaScript描述
[美] Michael McMillan / 王群锋、杜 欢 / 人民邮电出版社 / 2014-8 / 49.00元
通过本书的学习,读者将能自如地选择最合适的数据结构与算法,并在JavaScript开发中懂得权衡使用。此外,本书也概述了与数据结构与算法相关的JavaScript特性。 本书主要内容如下。 数组和列表:最常用的数据结构。 栈和队列:与列表类似但更复杂的数据结构。 链表:如何通过它们克服数组的不足。 字典:将数据以键-值对的形式存储。 散列:适用于快速查找和检索。......一起来看看 《数据结构与算法JavaScript描述》 这本书的介绍吧!