做为一个後端工程师,在架设网站时,免不了碰到资料上的问题,可能在顾客交易後,需要存取订单,以保留资讯,以利往後查询,这时你就必须要有一个资料库,提供你存取资料的功能。
这里会介绍几个我在工作上会使用到的资料库,第一个就是大家比较熟悉的关联是资料库 MySQL,Go 语言提供了几个套件,来对 MySQL 资料库做操作。
因为这里主要是教学如何使用 Golang 搭配 MySQL,所以不再另外介绍 MySQL。
在开始之前,你需要架设好自己的 MySQL 环境。
在你架设好後,你需要先建设 Database 和 Table ,因为下列程序需要,所以必须先建立好 Table:
CREATE TABLE `student` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(64) NULL DEFAULT NULL,
`gender` VARCHAR(64) NULL DEFAULT NULL,
PRIMARY KEY (`id`)
);
首先我们先建立资料库连线:
db, err := sql.Open("mysql", "root:my-secret-pw@tcp(127.0.0.1:3306)/user")
if err != nil {
panic(err)
}
// 释放连线
defer db.Close()
插入资料
stmt, err := db.Prepare("INSERT `student` SET `name`=?,`gender`=?")
if err != nil {
panic(err)
}
res, err := stmt.Exec("JC", "F")
if err != nil {
panic(err)
}
id, err := res.LastInsertId()
if err != nil {
panic(err)
}
rows, err := db.Query("SELECT * FROM `student`".)
if err != nil {
panic(err)
}
for rows.Next() {
var (
id int64
name string
gender string
)
scanErr := rows.Scan(&id, &name, &gender)
if scanErr != nil {
panic(err)
}
fmt.Println(id)
fmt.Println(name)
fmt.Println(gender)
}
stmt, err = db.Prepare("update `student` set gender=? where `id`=?")
if err != nil {
panic(err)
}
res, err = stmt.Exec("M", 1)
checkErr(err)
update, err := res.RowsAffected()
if err != nil {
panic(err)
}
fmt.Println(update)
stmt, err = db.Prepare("delete from `student` where id=?")
if err != nil {
panic(err)
}
res, err = stmt.Exec(1)
checkErr(err)
del, err = res.RowsAffected()
if err != nil {
panic(err)
}
fmt.Println(del)
MySQL 是许多公司使用的 DB,所以建议你可以去仔细研究他的一些机制,以及语法。Go 语言本身很是何做大量的资料读写操作,所以若你刚好是使用 MySQL DB 来做储存系统,有需求是大量读取 DB,也推荐你使用 Go 语言开发!
今天来讲一下Kubernetes的基本安装,这次我们选用MiniKube。MiniKube是一个简单...
前言:桶排序又名箱排序,究竟这个特殊的排序法是怎麽运作的,让我们一来探讨! 桶排序: 和上一篇的基数...
Hello, 各位 iT邦帮忙 的粉丝们大家好~~~ 本篇是 Re: 从零开始用 Xamarin 技...
Chatbot integration- 韩文翻译机器人 这篇会针对韩文翻译机器人的功能,整合 Az...
上一篇提到设置了一个Sign In With Apple的按钮,是使用UIButton里面的Imag...