Toyorm 介绍
使用 go 实现的 orm 库,用 go 的结构体与数据库表关联,来简化各种数据库操作。
特性:
-
条件:支持Limit/Offset/Where/Group by/Order by
-
支持事务
-
预加载:基于表主键的关联查询 支持BelongTo/OnetoOne/OnetoMany/ManyToMany 4种模式
-
Collection:多数据库操作,该模式下的数据必须拥有主键,auto_increment模式失效
-
toy-doctor(检查FieldSelection参数错误)
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) }
Toyorm 官网
https://gitee.com/bigpigeon/toyorm
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。