go-xorm

简单而强大的Go语言ORM库
授权协议 BSD
开发语言 Google Go
所属分类 程序开发、 ORM/持久层框架
软件类型 开源软件
地区 国产
投 递 者 章昱
操作系统 跨平台
开源组织
适用人群 未知
 软件概览


xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便。

讨论

请加入QQ群:280360085 进行讨论。

驱动支持

目前支持的Go数据库驱动如下:

更新日志

  • v0.2.0 : 新增 缓存支持,查询速度提升3-5倍;; 新增数据库表和Struct同名的映射方式; 新增Sync同步表结构;
  • v0.1.9 : 新增 postgres 和 mymysql 驱动支持; 在Postgres中支持原始SQL语句中使用 ` 和 ? 符号; 新增Cols, StoreEngine, Charset 函数;SQL语句打印支持io.Writer接口,默认打印到控制台;新增更多的字段类型支持,详见 映射规则;删除废弃的MakeSession和Create函数。
  • v0.1.8 : 新增联合index,联合unique支持,请查看 映射规则
  • v0.1.7 : 新增IConnectPool接口以及NoneConnectPool, SysConnectPool, SimpleConnectPool三种实现,可以选择不使用连接池,使用系统连接池和使用自带连接池三种实现,默认为SysConnectPool,即系统自带的连接池。同时支持自定义连接池。Engine新增Close方法,在系统退出时应调用此方法。
  • v0.1.6 : 新增Conversion,支持自定义类型到数据库类型的转换;新增查询结构体自动检测匿名成员支持;新增单向映射支持;
  • v0.1.5 : 新增对多线程的支持;新增Sql()函数;支持任意sql语句的struct查询;Get函数返回值变动;MakeSession和Create函数被NewSession和NewEngine函数替代;
  • v0.1.4 : Get函数和Find函数新增简单的级联载入功能;对更多的数据库类型支持。
  • v0.1.3 : Find函数现在支持传入Slice或者Map,当传入Map时,key为id;新增Table函数以为多表和临时表进行支持。
  • v0.1.2 : Insert函数支持混合struct和slice指针传入,并根据数据库类型自动批量插入,同时自动添加事务
  • v0.1.1 : 添加 Id, In 函数,改善 README 文档
  • v0.1.0 : 初始化工程

特性

  • 支持Struct和数据库表之间的灵活映射,并支持自动同步

  • 事务支持

  • 同时支持原始SQL语句和ORM操作的混合执行

  • 使用连写来简化调用

  • 支持使用Id, In, Where, Limit, Join, Having, Table, Sql, Cols等函数和结构体等方式作为条件

  • 支持数据库连接池

  • 支持级联加载Struct

  • 支持缓存


  • go-xorm如何嵌入子查询: go xorm相对其他orm工具有则不俗的用户友好性以及稳定性。xorm用户使用指南缺少对子查询的描述,只有join的使用指南。没有xorm的时代,程序员可以直接使用sql语句,但是存在sql注入风险,后来可以使用预编译sql语句,但是实际上xorm使用的就是sql预编译。因此,要是xorm支持原生子查询可以更加优雅的使用。 问题描述 xorm指南缺少对子查询的描述

  • XORM 一个简答强大的Go语言ORM库。 操作数据库的东西。 官网:https://xorm.io/ 文档:https://gitea.com/xorm/xorm/src/branch/master/README_CN.md 安装 请确保你的 Go 版本在 1.8+ 以上可以如下安装。 三选一 go get xorm.io/xorm go get -u github.com/xormplus/x

  • 1. 创建Orm引擎 xorm支持同时存在多个orm引擎,一个引擎一般对应一个数据库,调用xorm.NewEngine(driverName, dataSourceName)方法创建引擎,示例如下: package model import ( _ "github.com/go-sql-driver/mysql" "github.com/go-xorm/xorm" "github.com/

  • https://www.bookstack.cn/read/go-xorm-0.6.5/README.md https://www.bookstack.cn/read/go-xorm-0.6.5/chapter-01-2.engine_group.md 创建 ORM 引擎 所有操作均需要事先创建并配置 ORM 引擎才可以进行。XORM支持两种 ORM 引擎,即 Engine 引擎和 Engine

  • 简介 xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便。xorm的目标并不是让你完全不去学习SQL,我们认为SQL并不会为ORM所替代,但是ORM将可以解决绝大部分的简单SQL需求。xorm支持两种风格的混用。 特性 支持Struct和数据库表之间的灵活映射,并支持自动同步 事务支持 同时支持原始SQL语句和ORM操作的混合执行 使用连写来简化调用 支持使用Id, In

  • 博主写了个比较通用的,不多说,直接上代码,如果有机会能集成到xorm库里,也可以~! 主要是以POJO实体直接映射字段,请注意需要配置json~ QueryString因为不带数据类型,拿出来转换比较麻烦~ 如果联表筛选,请仔细写SELECT出来的字段对应关系~ 主要实现,curd常规操作【删除不做硬删】,分页等...   具体请看 : https://github.com/billmi/xorm

  • 新部署的阿里云实例在更新一个插件的时候报错: git clone https://github.com/go-xorm/xorm Cloning into 'xorm'... fatal: unable to access 'https://github.com/go-xorm/xorm/': SSL connect error curl -I https://github.com/go-xorm

  • #go-xorm封装公共CURD类 ##$ 前言 go-xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便。 ##$ 配置目标 封装一个公共的父级操作类, 通过继承可让子类带有简单的操作CRUD分页查询数据库的能力 可减少很多冗余,重复相似性很高的查询的代码编写 提高代码整洁性,可维护性  参考项目地址 https://blog.csdn.net/ve__locity/

  • xorm xorm是一个简单而强大的ORM库。 安装 go get -u github.com/go-xorm/xorm 驱动支持 Mysql: github.com/go-sql-driver/mysql MyMysql: github.com/ziutek/mymysql Postgres: github.com/lib/pq Tidb: github.com/pingcap/tidb SQL

  • xorm xorm是一个Go语言ORM库. 通过它可以使数据库操作非常简便. 全部文档点我 用法入门: 前提:定义本文中用到的struct和基本代码如下// 银行账户type Account struct { Id      int64 Name    string `xorm:"unique"` Balance float64 Version int `xorm:"version"` // 乐观

  •  mysql数据库脚本   DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `balance` decimal(10,2) NOT NULL DEFAULT '0.00', `versi

  • xorm安装 go get github.com/go-xorm/xorm,下载并安装xorm 如果遇到网速等原因造成下载不了,键入命令git config --global core.compression 9,示例如下: E:\public_gopath>go get github.com/go-xorm/xorm # cd .; git clone https://github.com/go

  • https://xorm.io/zh/ 1. 安装 go get github.com/go-xorm/xorm #安装xorm go get -u github.com/go-sql-driver/mysql #安装MySQL驱动 go mod tidy go mod tidy 引用项目需要的依赖增加到go.mod文件。 去掉go.mod文件中项目不需要的依赖。 2. 使用 package m

  • 创建连接引擎 package dao import ( _ "github.com/go-sql-driver/mysql" "github.com/go-xorm/xorm" ) var ( Driver = "mysql" DsName = "root:******@tcp(192.168.3.118:3306)/beego1?charset=utf8" DB *xorm

  • 该报错是由于映射表的结构的结构体中的 某个字段 比如 type Student struct { name string `xorm:"int(11) autoincr pk" json:"name"` ProductId int `xorm:"int(11) unique(uniq_product_id) not null comment('产品id')" json:"product_i

  • 关键代码: func ADGetComm(Db *xorm.Engine, model1 *model.IncentiveAd, limit, start int) (*[]model.IncentiveAd, error) { var ads []model.IncentiveAd //多条件动态查询 session := Db.Where("") if model1.A

 相关资料
  • 学习编程语言,早已不是学一点语法规则那么简单。现在更习惯称作选择 Ecosystem(生态圈),而这其中标准库的作用和分量尤为明显。 在Go语言的安装文件里包含了一些可以直接使用的包,即标准库。Go语言的标准库(通常被称为语言自带的电池),提供了清晰的构建模块和公共接口,包含 I/O 操作、文本处理、图像、密码学、网络和分布式应用程序等,并支持许多标准化的文件格式和编解码协议。 在 Windows

  • 主要内容:Go语言工程结构简单,Go语言编译速度快Go语言语法简单易懂,学习曲线平缓,不需要像 C/ C++ 语言动辄需要两到三年的学习期。Go语言被称为“互联网时代的C语言”。互联网的短、频、快特性在Go语言中体现得淋漓尽致。一个熟练的开发者只需要短短的一周时间就可以从学习阶段转到开发阶段,并完成一个高并发的服务器开发。 Go语言是 Google 公司开发的一种静态型、编译型并自带垃圾回收和并发的编程语言。所以它是一门类型安全的语言,加上通过构

  • 主要内容:Go语言创始人,Go 是编译型语言,为什么要学习Go语言,Go语言吉祥物Go语言(或 Golang)起源于 2007 年,并在 2009 年正式对外发布。Go 是非常年轻的一门语言,它的主要目标是“兼具 Python 等动态语言的开发速度和 C/ C++ 等编译型语言的性能与安全性”。 Go语言是编程语言设计的又一次尝试,是对类C语言的重大改进,它不但能让你访问底层操作系统,还提供了强大的网络编程和并发编程支持。Go语言的用途众多,可以进行网络编程、系统编程、并发编程

  • Go 语言简介 Go语言是由谷歌的罗布·派克(Rob Pike),罗伯特·格瑞史莫(Robert Griesemer),及肯·汤普逊于2007年9月开始设计Go语言,稍后Ian Lance Taylor, Russ Cox加入项目中。 Go语言于2009年11月正式宣布推出,成为开放源代码项目,并在Linux及Mac OS X平台上进行了实现,后追加Windows系统下的实现。 谷歌资深软件工程师

  • Go语言是由Google开发的一个开源项目,目的之一为了提高开发人员的编程效率。 Go语言语法灵活、简洁、清晰、高效。它对的并发特性可以方便地用于多核处理器 和网络开发,同时灵活新颖的类型系统可以方便地编写模块化的系统。go可以快速编译, 同时具有垃圾内存自动回收功能,并且还支持运行时反射。Go是一个高效、静态类型, 但是又具有解释语言的动态类型特征的系统级语法。 下面是用go编写的"Hello,

  • 图片来源于网络 学习任何知识之前肯定要对这个知识有一个简单的了解,当然学习 Go 语言也一样,这个小节我们就来简单认识下 Go 语言,了解下 Go 语言的来龙去脉。 1. Go 语言的出身 Go(又称 golang)是 Google 开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。 罗伯特·格里泽默(Robert Griesemer),罗布·派克(Rob Pike)及肯·汤普逊