JFinal什么时候用Db.find..,什么时候用实体类.dao.find..

发布于 2021-11-30 10:02:50 字数 168 浏览 682 评论 5

@JFinal 你好,想跟你请教个问题:如题,大哥应该能明白我要问的是什么,就是不知道什么时候该用Db来查,什么时候该用实体类的dao来查

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

瑾兮 2021-12-04 19:37:37

不是,起码Db是动态化的,不是强类型。

风柔一江水 2021-12-04 19:21:09

引用来自“JFinal”的评论

      Model 是 Active Record 模式,一个 model 对象唯一对应某张表中的某条记录,所以当对某个 model 进行 save()、update()、insert() 时无疑最好用 Model。既然有了 Model,那么查询也建议用 dao.find(...),因为返回的数据具有类型, 拥有了强类型语言的好处。

   如下情况需要使用 Db + Record:

1:没有创建 Model,不得不使用

2:由于Active Record 限制一个model对象对应一条记录,当需要批量操作表中的记录时需要使用Db + Record,例如,需要对 account 表中的 cash 字段统一加上 100 块钱:Db.update("update account set cash=cash+100"),这种情况下 Model 只能一条一条地处理数据,而 Db 可以利用 sql 去批量处理

3:在某些非常需要高度灵活性、通用性的系统之下使用 Db.find(...),例如做一个报表系统,其中绝大部分业务都是跨多表的联合查询的数据展现,用 Db.find(sql) 更加方便,以及拥有更大自由度。

   总之:有 model、可用 model时尽量 model.dao.find(sql)。没有 model可用、model.dao.find(...) 搞不定或者不方便搞定时用 Db + Record 模式。

清风夜微凉 2021-12-04 19:15:08

回答的详细

为你鎻心 2021-12-04 01:29:52

太感谢了!回答的很详细!

囚你心 2021-11-30 15:07:47

      Model 是 Active Record 模式,一个 model 对象唯一对应某张表中的某条记录,所以当对某个 model 进行 save()、update()、insert() 时无疑最好用 Model。既然有了 Model,那么查询也建议用 dao.find(...),因为返回的数据具有类型, 拥有了强类型语言的好处。

   如下情况需要使用 Db + Record:

1:没有创建 Model,不得不使用

2:由于Active Record 限制一个model对象对应一条记录,当需要批量操作表中的记录时需要使用Db + Record,例如,需要对 account 表中的 cash 字段统一加上 100 块钱:Db.update("update account set cash=cash+100"),这种情况下 Model 只能一条一条地处理数据,而 Db 可以利用 sql 去批量处理

3:在某些非常需要高度灵活性、通用性的系统之下使用 Db.find(...),例如做一个报表系统,其中绝大部分业务都是跨多表的联合查询的数据展现,用 Db.find(sql) 更加方便,以及拥有更大自由度。

   总之:有 model、可用 model时尽量 model.dao.find(sql)。没有 model可用、model.dao.find(...) 搞不定或者不方便搞定时用 Db + Record 模式。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文