首页 > 其他 > 详细

orm框架

时间:2019-12-20 01:58:03      阅读:109      评论:0      收藏:0      [点我收藏+]

gorm会默认给struct名称设置小写,并且加上复数形式

技术分享图片

tc := &src.TopicClass{} //用orm去建表时驼峰个是你会用下划线隔开,所有TopicClass对应表为topic_class
db.First(tc,2) //只取topic_class查询结果第一条,后面的2是可选参数,加上表示取主键=2的数据集的第一条,结构体必须标注了主键才可以查询到结果,如下面classId
/*
type TopicClass struct {
    ClassId   int `gorm:"PRIMARY_KEY"`
    ClassName string
    ClassType string `gorm:"Column:classType"`
}
*/
db.classes("topic_class").First(tc) //指定表名字

技术分享图片

![](https://xiahualou.oss-cn-shanghai.aliyuncs.com/img/20191219150926.png)db.LogMode(true) //打开输出,可以看到拼接的sql

db.SingularTable(true) //gorm会自动给表名加复数,可以设置使gorm在创建(查询)表时不加复数,如果为false则为topic_classes,下图topic_classes和topic_class分别为true和false的情况

技术分享图片

type TopicClass struct {
    ClassId   int `gorm:"PRIMARY_KEY"` //这里要加PRIMARY_KEY,否则db.First(tc,2) 这里会报错,因为gorm不知道哪个是主键
    ClassName string
    ClassType string `gorm:"Column:classType"` //默认是class_type但是数据库字段为classType,可以使用反射来标记字段
}
db.Where("class_name=?","技术类").find(tc) //查询class_name为技术类的数据
db.Where(&TopicClass{className:"技术类"}).find(tc) //查询class_name为技术类的数据
var tcs []TopicClass
db.Find(&tcs) // 表示取出所有数据

插入数据

insert_tc := &TopicClass{2,"九四班","强化班"}
fmt.Println(db.Create(insert_tc).RowsAffected)

gorm会默认给struct名称设置小写,并且加上复数形式

技术分享图片

tc := &src.TopicClass{} //用orm去建表时驼峰个是你会用下划线隔开,所有TopicClass对应表为topic_class
db.First(tc,2) //只取topic_class查询结果第一条,后面的2是可选参数,加上表示取主键=2的数据集的第一条,结构体必须标注了主键才可以查询到结果,如下面classId
/*
type TopicClass struct {
    ClassId   int `gorm:"PRIMARY_KEY"`
    ClassName string
    ClassType string `gorm:"Column:classType"`
}
*/
db.classes("topic_class").First(tc) //指定表名字

技术分享图片

![](https://xiahualou.oss-cn-shanghai.aliyuncs.com/img/20191219150926.png)db.LogMode(true) //打开输出,可以看到拼接的sql

db.SingularTable(true) //gorm会自动给表名加复数,可以设置使gorm在创建(查询)表时不加复数,如果为false则为topic_classes,下图topic_classes和topic_class分别为true和false的情况

技术分享图片

type TopicClass struct {
    ClassId   int `gorm:"PRIMARY_KEY"` //这里要加PRIMARY_KEY,否则db.First(tc,2) 这里会报错,因为gorm不知道哪个是主键
    ClassName string
    ClassType string `gorm:"Column:classType"` //默认是class_type但是数据库字段为classType,可以使用反射来标记字段
}
db.Where("class_name=?","技术类").find(tc) //查询class_name为技术类的数据
db.Where(&TopicClass{className:"技术类"}).find(tc) //查询class_name为技术类的数据
var tcs []TopicClass
db.Find(&tcs) // 表示取出所有数据

插入数据

insert_tc := &TopicClass{2,"九四班","强化班"}
fmt.Println(db.Create(insert_tc).RowsAffected)




orm框架

原文:https://www.cnblogs.com/hualou/p/12070800.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!