- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第
Go语言使用sqlx操作数据库的示例详解
目录安装sqlx类型设计准备连接数据库声明模型执行SQL命令执行SQL查询QueryxQueryRowxGetSelectsqlx.In使用具名参数事务预处理语句不安全的扫描Scan变体控制字段名称映射总结sqlx是Go语言中一个流行的第三方包,它提供了对Go标准库database/sql的扩展,旨在简化和改进Go语言中使用SQL的体验,并提供了更加强大的数据库交互功能。sqlx保留了database/sql接口不变,是database/sql的超集,这使得将现有项目中使用的database/sql替换为sqlx变得相当轻松。
本文重点讲解sqlx在database/sql基础上扩展的功能,对于database/sql已经支持的功能则不会详细讲解。如果你对database/sql不熟悉,可以查看我的另一篇文章《在Go中如何使用database/sql来操作数据库》。
安装
sqlx安装方式同Go语言中其他第三方包一样:
$goget/jmoiron/sqlx
sqlx类型设计
sqlx的设计与database/sql差别不大,编码风格较为统一,参考database/sql标准库,sqlx提供了如下几种与之对应的数据类型:
sqlx.DB:类似于sql.DB,表示数据库对象,可以用来操作数据库。sqlx.Tx:类似于sql.Tx,事务对象。sqlx.Stmt:类似于sql.Stmt,预处理SQL语句。sqlx.NamedStmt:对sqlx.Stmt的封装,支持具名参数。sqlx.Rows:类似于sql.Rows,sqlx.Queryx的返回结果。sqlx.Row:类似于sql.Row,sqlx.QueryRowx的返回结果。
以上类型与database/sql提供的对应类型在功能上区别不大,但sqlx为这些类型提供了更友好的方法。
准备
为了演示sqlx用法,我准备了如下MySQL数据库表:
DROPTABLEIFEXISTS`user`;
CREATETABLE`user`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`name`varchar(50)DEFAULTNULLCOMMENT用户名,
`email`varchar(255)NOTNULLDEFAULTCOMMENT邮箱,
`age`tinyint(4)NOTNULLDEFAULT0COMMENT年龄,
`birthday`datetimeDEFAULTNULLCOMMENT生日,
`salary`varchar(128)DEFAULTNULLCOMMENT薪水,
`created_at`datetimeNOTNULLDEFAULTCURRENT_TIMESTAMP,
`updated_at`datetimeNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,
PRIMARYKEY(`id`),
UNIQUEKEY`u_email`(`email`)
)ENGINE=InnoDBDEFAULTCHARSET=utf8COMMENT=用户表;
你可以使用MySQL命令行或图形化工具创建这张表。
连接数据库
使用sqlx连接数据库:
packagemain
import(
database/sql
log
_/go-sql-driver/mysql
/jmoiron/sqlx
funcmain(){
var(
db*sqlx.DB
errerror
dsn=user:password@tcp(:3306)/democharset=utf8mb4parseTime=trueloc=Local
//1.使用sqlx.Open连接数据库
db,err=sqlx.Open(mysql,dsn)
iferr!=nil{
log.Fatal(err)
//2.使用sqlx.Open变体方法sqlx.MustOpen连接数据库,如果出现错误直接panic
db=sqlx.MustO
您可能关注的文档
最近下载
- 一株安全性好、免疫原性好的传染性喉气管炎病毒天然弱毒株及应用.pdf VIP
- 成年女性压力性尿失禁护理干预-中华护理学会新发团标.pdf VIP
- kbg线管CECS100-98国标 接地规范要求.docx VIP
- 住培出科考核分层分类.docx VIP
- 民航CAAC多旋翼+垂起固定翼驾驶执照理论参考试题库(含答案).docx
- Unit 6 When disaster strikes Developing ideas课件 外研版(2025)英语八年级上册.pptx VIP
- 成年女性压力性尿失禁护理干预.pptx VIP
- 【精编版】二级医院医疗设备配置标准4.doc VIP
- 2025广西公需科目考试答案(3套涵盖95-试题)一区两地一园一通道建设人工智能时代的机遇与挑战.docx VIP
- 矿用灾区电话KTT9.ppt VIP
文档评论(0)