go培训课程都学什么?go语言框架学习:xorm框架知识介绍
xorm框架介绍
xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便。 通过xorm框架,开发者可以方便的使用各种封装好的方法来代替原生的sql语句。这样就降低了我们开发者使用数据库的门槛。本节内容,我们将通过xorm相关知识的学习,来逐步掌握在代码中如何操作数据库。 读者也可以通过相关的学习文档进行xorm框架的学习,如下是xorm框架相关的学习文档:
xorm的Github仓库地址:https://github.com/go-xorm/xorm
xorm说明文档地址:http://xorm.io/docs
支持数据库驱动列表
同其他对象关系映射框架一样,xorm也支持连接、操作多种数据库,包括:mysql、mymysql、postgres、tidb、sqlite、mssql、oracle(测试)。具体的每一种数据库类型的驱动安装如下:
MyMysql: github.com/ziutek/mymysql/godrv
Postgres: github.com/lib/pq
Tidb: github.com/pingcap/tidb
SQLite: github.com/mattn/go-sqlite3
MsSql: github.com/lunny/godbc
Oracle: github.com/mattn/go-oci8 (试验性支持)
xorm安装
go get github.com/go-xorm/xorm
mysql连接示例
本节内容中,我们将以连接mysql为案例,演示xorm的相关操作。
创建引擎
engine, err := xorm.NewEngine(driverName, dataSourceName)
如上通过xorm.NewEngine方法创建一个数据库操作引擎,该方法需要两个参数:driveName和dataSourceName。在mysql引擎连接中,两个参数如下:
driverName := "mysql"
dataSrouceName := "用户名:密码@/数据库名称?charset=utf8"
另外,需要格外注意一点,需要在使用数据库引擎创建的地方导入对应的数据库引擎驱动,比如本节内容中的mysql数据库,引擎导入语句如下:
_ "github.com/go-sql-driver/mysql"
mysql连接配置
设置自动同步结构体到数据库 xorm框架的engine数据库引擎,提供了engine.Sync()方法,允许开发者将自定义的结构体同步到数据库中。 随着xorm框架不断更新和迭代,在Sync方法的基础上,又提供了Sync2方法,用于将结构体同步更新到数据库中。Sync2方法主要的特性是:
自动检测和创建表
自动检测和新增表中的字段名
自动检测创建和删除索引
自动转换varchar字段类型到text字段类型
自动警告字段的默认值
err = engine.Sync2(new(model.Permission), new(model.City), new(model.Admin), new(model.AdminPermission), new(model.User))
如上是Sync2方法的使用方法
其他设置
是否显示SQL语句(开发调试时使用)
engine.ShowSQL(true)
设置数据库最大连接数
engine.SetMaxOpenConns(10)
设置最大空闲连接数量:默认是2
engine.SetMaxIdleConns(5)
本节课我们介绍了xorm框架的基本内容和学习文档,以及如何连接mysql数据库,并进行相关设置的内容。下节课我们将学习xorm框架如何具体实现数据库的操作相关的方法。
go培训课程都学什么?go语言框架学习:xorm框架知识介绍的更多相关文章
- go培训课程都学什么?xorm框架学习系列(二):xorm结构体映射规则和表操作
上节内容我们学习了基本的xorm框架的知识和基础配置的相关信息.本节课内容我们继续学习相关的知识和相关操作. 名称映射规则 名称映射规则主要负责结构体名称到表名和结构体field到表字段的名称映射. ...
- go语言数据库操作,xorm框架
待续............................................... 连接数据库 db, err := xorm.NewEngine("mysql", ...
- Hadoop学习笔记—15.HBase框架学习(基础知识篇)
HBase是Apache Hadoop的数据库,能够对大型数据提供随机.实时的读写访问.HBase的目标是存储并处理大型的数据.HBase是一个开源的,分布式的,多版本的,面向列的存储模型,它存储的是 ...
- Yii 框架学习--01 框架入门
Yii 是一个高性能的,适用于开发 WEB2.0 应用的 PHP 框架. Yii目前有两个主要的版本: 2.0 和 1.1.本文以YII 2.0.7为例. 环境需求 Yii2.0 框架有一些系统上的需 ...
- smm框架学习------smm框架整合实现登录功能(一)
一.准备所需的jar包 1.1所需jar包 1.Spring框架jar包 2.Mybatis框架jar包 3.Spring的AOP事务jar包 4.Mybatis整合Spring中间件jar包 5.a ...
- TinkPHP框架学习-01基本知识
1-----目录结构 2-----访问地址 3-----MVC开发 一 目录结构 |--Application 程序文件夹 |--Common 公共方法函数 |--Home 模块 |也可以自 ...
- <yii 框架学习> yii 框架改为中文提示
工作需要用到yii框架,但发现yii框架自带的提示都是英文的.上网找资料才发现其实可以自己陪置 . 将项目protected/config/main.php里的app配置加上language=> ...
- Netty 框架学习 —— 编解码器框架
编解码器 每个网络应用程序都必须定义如何解析在两个节点之间来回传输的原始字节,以及如何将其和目标应用程序的数据格式做相互转换.这种转换逻辑由编解码器处理,编解码器由编码器和解码器组成,它们每种都可以将 ...
- 吴裕雄--天生自然 R语言开发学习:基础知识
1.基础数据结构 1.1 向量 # 创建向量a a <- c(1,2,3) print(a) 1.2 矩阵 #创建矩阵 mymat <- matrix(c(1:10), nrow=2, n ...
随机推荐
- Linux下开放防火墙端口
方法一:1.vi /etc/sysconfig/iptables 2.-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEP ...
- COM组件的集合与包容
集合与包容,实质就是组件之间的互相调用.即一个组件使用另一个组件的功能,达到代码复用的作用.只是这种复用是构建在二进制数据上的(因为被复用的组件常常以dll的格式存在),而不是像c++代码复用是以源文 ...
- CSS让图标变成白色或黑色实例页面 和css变灰色
css代码 .black { filter: brightness(0); } .white { filter: brightness(100); } html代码 <h4>原图</ ...
- 优秀开源项目之一:视频监控系统iSpy
iSpy是一个开源的视频监控软件,目前已经支持中文.自己用了一下,感觉还是很好用的.翻译了一下它的介绍. iSpy将PC变成一个完整的安全和监控系统 iSpy使用您的摄像头和麦克风来检测和记录声音或运 ...
- bzoj 2160: 拉拉队排练 回文自动机
题目: Description 艾利斯顿商学院篮球队要参加一年一度的市篮球比赛了.拉拉队是篮球比赛的一个看点,好的拉拉队往往能帮助球队增加士气,赢得最终的比赛.所以作为拉拉队队长的楚雨荨同学知道,帮助 ...
- Unity中的ShaderToys——将大神们写的shader搬到unity中来吧
http://lib.csdn.net/article/unity3d/38699 这篇文章翻译自国外的一篇文章(这里是原文链接),正在使用unity的你是否在shader toy上发现很多牛逼哄哄的 ...
- Trilead,SSH2的Java调用
最近项目要部署10台设备,如果每台设备都手动进行部署想想也是醉了. 因为之前一直使用SecurityFX以及SecurityCRT,所以考虑是否可以使用基于SSH2的类库来实现文件拷贝以及远程命令调用 ...
- asp.net定时任务
我们这边使用的定时任务框架是Quartz.Net,可以实现异常灵活的定时任务,开发人员只要编写少量的代码就可以实现“每隔一小时执行”.每天22点执行,每月18日下午执行等等各种定时任务. Quartz ...
- 【转】 Pro Android学习笔记(四一):Fragment(6):数据保留
目录(?)[-] 通过fragment参数实现数据保留 对TitleFragment进行修改 对DetailActivity进行修改 通过savedInstanceState进行数据保留 保留frag ...
- zk 02之 Windows安装和使用zookeeper
本文介绍的 Zookeeper 是以 3.4.5 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/来获取,Zookeeper 的安装非 ...