2016-12-13 15:19
@nbjgl 那就拆分成两个 sql,大致如下:
int n = Db.update("update t set count=count+1 where where id=? and date=?", id, date);
if (n == 0) {
Xxx xxx = new Xxx();
xxx.setId(id);
xxx.setCount(1);
xxx.setDate(new Date());
xxx.save();
}
上面的代码意思是,先尝试性的让其加1,如果 n 为 0 表示记录不存在,此时就可以去插入一条记录
注意上述代码放在一个事务中,以免并发情况下插入同 id 且同 date 的记录
最好的办法还是使用缓存,让一个专门的线程处理,连事务都不需要
2016-12-13 11:30
@奋斗-now 天然就支持,这里是前台:
me.add("/", IndexController.class);
me.add("/project", ProjectController.class);
这里是后台:
me.add("/admin", IndexAdminController.class);
me.add("/admin/project", ProjectAdminController.class);
controllerKey 中可以包含 "/" 字符,可以自由实现 namespace 功能,并且无需引入新的概念
2016-12-12 14:34
@似水流言1 不使用jfinal 的集成启动方式,更加没有关系,不需要理会前面我说的参数问题,只需要让 PathKit.getWebRootPath() 这个方法返回正确的路径就好
如果确实没有办法做到,可以在 YourJFinalConfig 的 configConstant(Constants me) 中通过 PathKit.setWebRootPath(...) 手动强制指定,但是这个虽然是解决了眼前的问题,但你的整个 web 项目所依赖的路径可能还是存在别的问题