2017-10-30 17:57

很多数据库根本就不支持 select count(*) 中带有 order by 子句,jfinal 比任何人都更希望方案简单

group by 如果不处理,用在分页中时直接就造成分页错误。将 sql 包裹在 select * from(...) 内部,性能不如现有的方案

2017-10-30 17:49

String jsonString= HttpKit.readData(getRequest());
Kv kv = Fastjson.getJson().parse(jsonString, Kv.class);

2017-10-29 17:08

必然可以, 参考 jfinal 手册第 5.13 小节即可。

简单来说,只需要在需要的时候 new 出来 ActiveRecordPlugin,然后调用它的 start() 方法即可,如果需要结束,调用它的 stop() 方法即可,想什么时候连数据库,完全自由

2017-10-28 19:15

@刘进洪 首页的 jfinal demo中就有

2017-10-28 14:47

发现你代码的一个严重错误:LtOrder.dao.updatePrize(curPrize, ltOrderItem.getOrderId());

dao 对象是全局共享的,只能用于查询,不能里头其它的 api,所以在现在的 jfinal demo 中的 dao 都这样来做的:
User dao = new User().dao();

注意,最后面调用了一次 dao() 方法,这样就可以天然避免你调用 update 方法了,相信你的 dao 对象在 new 出来的时候,没有调用这个 dao() 方法

2017-10-28 14:46

user.save() 与 updatePrize(curPrize, ltOrderItem.getOrderId()); 如果开启了事务,就会用同一个 connection, 这个是在 jfinal 内部用 ThreadLocal 来保障的

2017-10-28 14:44

@datianxia 应该是你的事务级别不支持你当前的操作,将事务级调高到 4:
arp.setTransactionLevel(4);

如果你用的最新版本的 jfinal,默认就是这个级别的

2017-10-28 14:43

看下你手头刚下载的源代码,这个是很基础的功能

2017-10-28 14:43

renderFile(fileName, newFileName) 即可打完收工

2017-10-28 14:41

在 configEngine(Engine me) 中配置一下:
me.setSharedObject("basePath", JFinal.me().getContextPath());

然后就可以在模板中通过 basePath 来引用这引值了

2017-10-28 14:40

href 后面的路径以 "/" 打头,否则它就会随着浏览器地址栏当前的值不断变化

2017-10-28 14:37

如果确定字符集没有问题,再确定一下 jdbcUrl 中的 encoding 是不是正确,例如在本站首页下载的 jfinal demo 配置文件中的 jdbcUrl 值如下:
jdbc:mysql://localhost/jfinal_demo?characterEncoding=utf8

注意看最后一段:?characterEncoding=utf8,这个就指定了字符集

2017-10-28 14:34

存放数据的那个字段不支持你当前的数据格式, encoding 不正确引起的,改改 encoding,例如,存放 emoji表情字符串数据,需要用 utf8mb4 字符集

存放有些偏门的微信的昵称也会出这种情况。这种问题决然与 jfinal 无关,只要把 encoding 搞对就可以了