Go 语言实现的 ORM 库 Toyorm

码农软件 · 软件分类 · ORM/持久层框架 · 2019-09-22 18:44:28

软件介绍

使用 go 实现的 orm 库,用 go 的结构体与数据库表关联,来简化各种数据库操作。

特性:

  1. 语句与查询:支持Insert/Replace/Find/Delete/Update等操作

  2. 条件:支持Limit/Offset/Where/Group by/Order by 

  3. 支持事务

  4. 预加载:基于表主键的关联查询 支持BelongTo/OneToOne/OneToMany/ManyToMany 4种模式

  5. 预加载条件:操作预加载的表和操作基本表一样

  6. 预加载查询聚合:对于预加载字段会优化成Where id in [...]的查询,一个预加载字段永远只占一个Select

  7. Result:生成数据库语句报告和语句导致的错误,支持预加载模式

  8. 上下文结构,可以在数据库语句逻辑中插入自定义逻辑

  9. Collection:多数据库操作,该模式下的数据必须拥有主键,auto_increment模式失效

  10. toy-doctor(检查FieldSelection参数错误)

支持 mysql, sqlite3

go版本 >1.9

安装

go get github.com/bigpigeon/toyorm

快速开始

package main

import (
"github.com/bigpigeon/toyorm"
_ "github.com/mattn/go-sqlite3"
. "unsafe"
)

type Product struct {
toyorm.ModelDefault
Name  string
Price int
}

func panicErr(err error) {
if err != nil {
panic(err)
}
}

func main() {
toy, err := toyorm.Open("sqlite3", "mydb.db")
panicErr(err)
defer func() {
err := toy.Close()
panicErr(err)
}()
// create ToyBrick
brick := toy.Model(&Product{}).Debug()
// create table
_, err = brick.CreateTable()
panicErr(err)

// insert product
_, err = brick.Insert(&Product{
Name:  "apple",
Price: 22,
})
panicErr(err)
// update product
_, err = brick.Where("=", Offsetof(Product{}.Name), "apple").Update(Product{Price: 23})
panicErr(err)
var product Product
// find
_, err = brick.Find(&product)
panicErr(err)
// delete
_, err = brick.Delete(&product)
panicErr(err)
}

本文地址:https://codercto.com/soft/d/15175.html

Excel图表之道

Excel图表之道

刘万祥 / 电子工业出版社 / 2010年4月 / 59.00元

本书介绍作者在实践工作中总结出来的一套“杂志级商务图表沟通方法”,告诉读者如何设计和制作达到杂志级质量的、专业有效的商务图表,作者对诸如《商业周刊》、《经济学人》等全球顶尖商业杂志上的精彩图表案例进行分析,给出其基于Excel的实现方法,包括数据地图、动态图表、仪表板等众多高级图表技巧。 本书提供大量图表模板源文件,包括详细的制作步骤,提供网上下载。提供博客支持。 本书定位于中高级Ex......一起来看看 《Excel图表之道》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具