推荐使用Struct来查询数据
- 在ORM的 Table方法中使用Struct参数,如:Table(&Struct)
- 结构体是啥名字,就会使用其做为表名,不会进行啥转换
如果名字不匹配,则需要Struct实现 TableName() string 接口 - ORM的查询中 Table方法中使用了结构体时
如果传递的是 Slice Struct ,则会查询多条
如果只有一个Struct,则会查询一条 - Struct的Tag标签为:gorose,如:
gorose:"movie_name"
同时也可以用 gorose:"-" 来忽略SQL中某个不存在的字段 - Struct中的某个字段要与SQL中的 null 值对应时,需要使用其对应类型的指针
- Struct中有某个时间字段,对应数据库中的 datetime 等时间类型时,则要在DSN中设置[parseTime=true]
个人不推荐的
执行原生SQL时,返回的结果是 map[string]interface{} 类型,这个很麻烦,使用的时候,要做转换
能不用原生SQL的,尽量不要使用 - 个人意见
使用 Get() 或者 First() 方法时,表名只能传递 string 类型,且其返回类型为 map[string]interface{}
Update操作
个人推荐使用其提供的 gorose.Data 做为 update 的参数,明确的更新具体的字段与值
不要使用Struct来做为update的参数来进行更新
而且使用Struct来进行更新参数的话,生成的SQL会很奇怪