xorm框架介绍

xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便。 通过xorm框架,开发者可以方便的使用各种封装好的方法来代替原生的sql语句。这样就降低了我们开发者使用数据库的门槛。本节内容,我们将通过xorm相关知识的学习,来逐步掌握在代码中如何操作数据库。 读者也可以通过相关的学习文档进行xorm框架的学习,如下是xorm框架相关的学习文档:

支持数据库驱动列表

同其他对象关系映射框架一样,xorm也支持连接、操作多种数据库,包括:mysql、mymysql、postgres、tidb、sqlite、mssql、oracle(测试)。具体的每一种数据库类型的驱动安装如下:

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框架知识介绍的更多相关文章

  1. go培训课程都学什么?xorm框架学习系列(二):xorm结构体映射规则和表操作

    上节内容我们学习了基本的xorm框架的知识和基础配置的相关信息.本节课内容我们继续学习相关的知识和相关操作. 名称映射规则 名称映射规则主要负责结构体名称到表名和结构体field到表字段的名称映射. ...

  2. go语言数据库操作,xorm框架

    待续............................................... 连接数据库 db, err := xorm.NewEngine("mysql", ...

  3. Hadoop学习笔记—15.HBase框架学习(基础知识篇)

    HBase是Apache Hadoop的数据库,能够对大型数据提供随机.实时的读写访问.HBase的目标是存储并处理大型的数据.HBase是一个开源的,分布式的,多版本的,面向列的存储模型,它存储的是 ...

  4. Yii 框架学习--01 框架入门

    Yii 是一个高性能的,适用于开发 WEB2.0 应用的 PHP 框架. Yii目前有两个主要的版本: 2.0 和 1.1.本文以YII 2.0.7为例. 环境需求 Yii2.0 框架有一些系统上的需 ...

  5. smm框架学习------smm框架整合实现登录功能(一)

    一.准备所需的jar包 1.1所需jar包 1.Spring框架jar包 2.Mybatis框架jar包 3.Spring的AOP事务jar包 4.Mybatis整合Spring中间件jar包 5.a ...

  6. TinkPHP框架学习-01基本知识

    1-----目录结构 2-----访问地址 3-----MVC开发 一 目录结构 |--Application 程序文件夹 |--Common 公共方法函数 |--Home      模块 |也可以自 ...

  7. <yii 框架学习> yii 框架改为中文提示

    工作需要用到yii框架,但发现yii框架自带的提示都是英文的.上网找资料才发现其实可以自己陪置 . 将项目protected/config/main.php里的app配置加上language=> ...

  8. Netty 框架学习 —— 编解码器框架

    编解码器 每个网络应用程序都必须定义如何解析在两个节点之间来回传输的原始字节,以及如何将其和目标应用程序的数据格式做相互转换.这种转换逻辑由编解码器处理,编解码器由编码器和解码器组成,它们每种都可以将 ...

  9. 吴裕雄--天生自然 R语言开发学习:基础知识

    1.基础数据结构 1.1 向量 # 创建向量a a <- c(1,2,3) print(a) 1.2 矩阵 #创建矩阵 mymat <- matrix(c(1:10), nrow=2, n ...

随机推荐

  1. Ueditor--toolbars

    (1)代码中定义 <script id="container" name="content" type="text/plain"> ...

  2. 目标检测 — Inception-ResNet-v2

    这篇文章介绍的网络有Inception V1.Inception V2.Inception V3.Inception V4与Inception-ResNet-V2. 1.Inception V1 主要 ...

  3. HYSBZ - 1588 splay

    题意:每天给你一个数,要求统计最小波动值,强制在线的就是每次从已经出现过的数值中找与当前值间隔最小的加起来 题解:splay维护,同时求解当前值的前驱和后继,找距离小的那个就好了 splay是一种二叉 ...

  4. ES field store yes no 区别——可以设置为false,如果_source有的话

    store By default, field values are indexed to make them searchable, but they are not stored. This me ...

  5. GeoServer基础教程(四):空间数据互操作的接口规范WMS、WFS和WCS

    转载:https://ethanblog.com/tech/all-about-wms-wfs-and-wcs.html 前面几节介绍了GeoServer基础教程的一些基本操作,相信大家对GeoSer ...

  6. python习题-产生8位随机密码要包含大小写及数字

    # 1.写一个产生密码的程序,# 输入次数,输入多少次就产生多少条数据,# 要求密码必须包含大写字母.小写字母和数字,长度8位,不能重复 #需求分析#1.循环,输入什么就循环多少次#2.随机来取值,是 ...

  7. 第二章 python基础(三)

    第十六节 MySQLdb win64位安装python-mysqldb1.2.5 ubuntu下安装MySQLdb sudo apt-get install python-MySQLdb 导入MySQ ...

  8. Abp模块分析

    1.什么是模块? 模块化是一种处理复杂系统分解为更好的可管理模块的方式.模块化用来分割,组织和打包软件.每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功 ...

  9. spring-springMVC-MyBatis整合配置文件

    web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="htt ...

  10. 批量修改mysql的表前缀

    如何批量修改mysql的表前缀名称教程中将涉及两种方法修改,一种是批量修改(使用php脚步完成)一种是精确修改(使用sql查询语句完成). 方法一:使用sql语句修改mysql数据库表前缀名 首先我们 ...