Golang的ORM框架gorose使用注意事项

推荐使用Struct来查询数据

  1. 在ORM的 Table方法中使用Struct参数,如:Table(&Struct)
  2. 结构体是啥名字,就会使用其做为表名,不会进行啥转换
    如果名字不匹配,则需要Struct实现 TableName() string 接口
  3. ORM的查询中 Table方法中使用了结构体时
    如果传递的是 Slice Struct ,则会查询多条
    如果只有一个Struct,则会查询一条
  4. Struct的Tag标签为:gorose,如: gorose:"movie_name"
    同时也可以用 gorose:"-" 来忽略SQL中某个不存在的字段
  5. Struct中的某个字段要与SQL中的 null 值对应时,需要使用其对应类型的指针
  6. Struct中有某个时间字段,对应数据库中的 datetime 等时间类型时,则要在DSN中设置[parseTime=true]
Gorose的结构体定义

个人不推荐的

执行原生SQL时,返回的结果是 map[string]interface{} 类型,这个很麻烦,使用的时候,要做转换

能不用原生SQL的,尽量不要使用 - 个人意见

使用 Get() 或者 First() 方法时,表名只能传递 string 类型,且其返回类型为 map[string]interface{}

Update操作

个人推荐使用其提供的 gorose.Data 做为 update 的参数,明确的更新具体的字段与值

不要使用Struct来做为update的参数来进行更新

而且使用Struct来进行更新参数的话,生成的SQL会很奇怪