2018-05-12 15:43
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 方法是固定的
2018-05-12 15:00
@JackZeng 在 web.xml 中可以看到 JFinalFilter,而你可以将你用的 shiro 相关 Filter 写在 JFinlFilter 之前
这样就可以让 shrio 的 filter 先于 JFinalFilter 拦截请求,就可以起到控制权限的作用
2018-05-11 23:22
enjoy 用到炉火纯青了,check() 可以很大程度上解决这个问题, @小99 可以试用一下
2018-05-11 18:37
@hann @Before(Tx.class) 无法跨多数据源回滚,注意一下是不是这个问题