go mysql教學 Go 操作 Mysql(一)

2021-10-18 02:43:47 字數 1898 閱讀 1722

開發環境準備

go 操作 mysql 需要使用的包:go-sql-driver/mysql 和 sqlx

sqlx 包是作為 database/sql 包的乙個額外擴充套件包,在原有的 database/sql 上加了很多擴充套件,如果將查詢的資料轉為結構體,大大簡化了**書寫,當然,database/sql 包中的方法同樣起作用

安裝:go get "github.com/go-sql-driver/mysql"

連線資料庫示例:

var db *sqlx.db

db, err := sqlx.open("mysql","username:password@tcp(ip:port)/database?charset=utf8")

db = db

處理型別(handle types)

sqlx 設計和 database/sql 使用方法是一樣的,包含有 4 個主要的 handle types

sqlx.db                        表示資料庫(與 sql.db 相似)

sqlx.tx                         表示事物(與 sql.tx 相似)

sqlx.stmt                      表示 prepared statement(和 sql.stmt 相似)

sqlx.namedstmt          表示 prepared statement(支援 named parameters)

所有的 handle types 都提供了對 database/sql 的相容,意味著當你呼叫 sqlx.db.query 時,可以直接替換為 sql.db.query,這就使得 sqlx 可以很容易的加入到已有的資料庫專案中

此外,sqlx 還有兩個 cursor 型別:

sqlx.rows            (和 sql.rows 類似,queryx 返回)

sqlx.row              (和 sql.row 類似,queryrowx 返回)

相比 database/sql 還多了新的方法,也就是將獲取的資料直接轉換成 結構體

get(dest inte***ce{}, ...) error

select(dest inte***ce{}, ...) error

建表以下所有 demo 都以下表結構作為基礎

create table`userinfo` (

`uid`int(10) not nullauto_increment,

`create_time`datetime default null,

`username`varchar(64) default null,

`password`varchar(32) default null,

`department`varchar(64) default null,

`email`varchar(64) default null,primary key(`uid`)

)engine=innodb default charset=utf8;

exec() 方法使用

exec 和 mustexec 從連線池中獲取乙個連線然後指向對應的 query 操作,對於不支援 ad-hoc query execution 的驅動,在操作執行的背後會建立乙個 prepared statement,在結果返回前,這個 connection 會返回到連線池中

需要注意的是,不同的資料庫,使用的佔位符不同,mysql 採用 ? 作為佔位符

mysql 使用 ?

postgresql 使用 1,1,2 等等

sqllite 使用 ? 或 $1

oracle 使用 :name        (注意有冒號)

增刪

go mysql連線 Go連線MYSQL

go原生提供了連線資料庫操作的支援,在用 golang進行開發的時候,如果需要在和資料庫互動,則可以使用database sql包。這是乙個對關係型資料庫的通用抽象,它提供了標準的 輕量的 面向行的介面。在go中訪問資料庫需要用到sql.db介面 它可以建立語句 statement 和事務 tran...

go mysql連線 使用 Go 連線資料庫

簡介 在 go 中連線資料庫的方式有很多,這裡我們選擇使用 orm 的方式,也就不用寫原生的 sql 語句了.go 的 orm 庫也有很多,這裡選擇了 gorm.安裝 gorm 啟動資料庫 資料庫選擇了最主流的 mysql.建立資料庫的方式有很多,為了便於清理,選擇使用 docker 建立資料庫.新...

MySQL WorkBench管理操作MySQL

一 mysql workbench mysql workbench提供dbas和developers乙個整合工具環境 1 資料庫設計和建模 2 sql開發 取代原來的mysql query browser 3 資料庫管理 取代原來的mysql administrator 2 安裝 3 入門資料庫例項...