- 授权协议: MIT
- 开发语言: Google Go
- 操作系统: 跨平台
- 软件首页: https://gitee.com/bigpigeon/toyorm
- 软件文档: https://bigpigeon.org/toyorm/cn/
软件介绍
使用 go 实现的 orm 库,用 go 的结构体与数据库表关联,来简化各种数据库操作。
特性:
语句与查询:支持Insert/Replace/Find/Delete/Update等操作
条件:支持Limit/Offset/Where/Group by/Order by
支持事务
预加载:基于表主键的关联查询 支持BelongTo/OneToOne/OneToMany/ManyToMany 4种模式
预加载条件:操作预加载的表和操作基本表一样
预加载查询聚合:对于预加载字段会优化成Where id in [...]的查询,一个预加载字段永远只占一个Select
Result:生成数据库语句报告和语句导致的错误,支持预加载模式
上下文结构,可以在数据库语句逻辑中插入自定义逻辑
Collection:多数据库操作,该模式下的数据必须拥有主键,auto_increment模式失效
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)
}
Practical Algorithms for Programmers
Andrew Binstock、John Rex / Addison-Wesley Professional / 1995-06-29 / USD 39.99
Most algorithm books today are either academic textbooks or rehashes of the same tired set of algorithms. Practical Algorithms for Programmers is the first book to give complete code implementations o......一起来看看 《Practical Algorithms for Programmers》 这本书的介绍吧!
CSS 压缩/解压工具
在线压缩/解压 CSS 代码
HEX HSV 转换工具
HEX HSV 互换工具
