Model 是 Active Record 设计模式,对于创建、更新、删除操作,只能是对一条数据记录,例如: new User().setName("James").save(); new User().findById(123).setAge(28).update(); new User().deleteById(456);
因此,model 对于需要同时创建、更新、删除多条数据表记录的功能无法实现,这个时候就需要 Db + Record 模式的帮助,例如: Db.delete("delete from user where age < ?", 18); Db.update("update account set cash = cash + ? where id < ?", 1000, 789);
对于查询来说,model 可以将查询结果封装成 model ,方便使用 model 上的具体的 getter 方法来获取数据,例如: user.getName() 而 record 则只能是: user.getStr("name")
因此,如果 model 可用则尽可能用 model ,否则使用 Db + Record 模式作为补充
最后, Db + Record 特别适合需要灵活查询的报表系统,返回值的字段高度灵活,表关联复杂的情况尤其好用,因为 Model 中的 getter 方法是固定的
1、大伙在一起吃大锅饭的时候,且项目是有具有一定规模型的大型,推荐你使得标准项目结构分为dao、service、controller,每层结构清析,团队开发、日后维护都方便,这时Db类的使用就作为辅助来用,也就是常说的江湖救急。
2、就是追求极速开发,也就当使用Generator+JavaBean自动生成工具生成bean也是一种负担时,且项目数据库、代码灵活多变时,也就是中小型项目开发,同时自己正在扛把子的时候,直选Db方案。