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 搞对就可以了

2017-10-28 14:32

通过启动信息就可以看出来,是对 jfinal 代码进行过改变后的版本,所以细节一定要自己把握好

异常是 RedisUtil.existsKey(...) 方法内部抛出的,而这个方法并不是 jfinal 提供的,所以我也就不可能知道原因了

2017-10-28 14:30

@mekain 数据确实只能获取一次,因为流里面的数据读的时候,指针会往后不断移动,那么,你要处理于读过的数据在后续共享的事情

例如,可以通过 request.setAttribute(...) 或者 controller.setAttr(...) 将数据传递下去,也可以在 controller 中用一个属性来存放,例如 this.data = ...;

2017-10-28 14:28

@九州游人 先用 java 的纯 JDBC 连接,写个 main 方法连上数据库,然后将连上数据库时使用的配置用在 jfinal 项目中,问题就解决了

Generator 必然是支持 oracle 的,只需要配置一下方言:
generator.setDialect(new OracleDialect());