開發環境準備
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 入門資料庫例項...