在base类new dao和service层 new dao有区别吗?(已解决)

在base类new dao和在service层 new dao,有什么区别吗?

有没有涉及到单例模式的东西?是不是在service层new dao,可以确保是同一个事务?

波总在VIP群亲解决了:

base 类中的 new dao 不提但,因为你团队中的猪队友可以在 controller 中写业务代码:
public void index() {
   Share.dao.find("select * from …);

}

将 dao 对象限定在 service 中,并且弄成  private 的,可以将业务,将数据库操作全部限定在 Service 层

否则,你的 sql 可以满天飞, 哪里都可以飞!这点也重要, 事务集中在业务层!否则你的事务也是不确定的!

model 中不要再出来 public xxx dao  这种东东

dao 这个对象,天然就不应该是 public 的

而且一定要有   dao() 调用, 限定为只能查询,不能存放数据

调用了 dao() 以后,你的 dao 对象,就只能查询,而不能  dao.set(…).save() 

而且也可以防止由于自己懒惰, 不建业务层,让 dao 到处用

dao 只能在 service 中使用

养成良好的编码习惯,随着项目的进化,你会发现这其中的价值

这个可以在生成器中配置:
generator.setGenerateDaoInModel(false);

评论区

JFinal

2019-11-09 15:45

谢谢你的分享,赞

山东小木

2019-11-09 16:25

对 最佳实践

热门反馈

扫码入社