2019-05-13 16:36
@crazykids paginate 方法中才涉及 boolean isGroupBy 参数,而且是最外层有 group by 才会用到
其它方法与 isGroupBy 参数完全无关,无需考虑
2019-05-13 16:21
@crazykids Db.update("truncate table table_name");
慎用,除非确定该表的数据要清掉
Db.update 方法可以执行 sql 并且可以带参,活用这个方法可以实现很多功能。
2019-05-13 15:38
me.setBaseDownloadPath(...) 没有配置时,renderFile 默认以 webapp/download 为根去找文件
Constants.java 源代码的 setBaseDownloadPath(...) 已经说的很详细:
设置文件下载基础路径,当路径以 "/" 打头或是以 windows 磁盘盘符打头, 则将路径设置为绝对路径,否则路径将是以应用根路径为基础的相对路径
例如:
1:参数 "/var/www/download" 为绝对路径,下载文件存放在此路径之下
2:参数 "download" 为相对路径,下载文件存放在 PathKit.getWebRoot() + "/download" 路径之下
你可以选择是以相对路径还是绝对路径配置一下,然后 renderFile 给定好参数即可
2019-05-13 13:21
@太岳三清峰 没错
这里要注意一个问题,你的 batchSize 指定的是 100,那么每次在 100 条数据执行完成后就会提交一次事务,如果你的数据多余 100 条,那么会提交多次事务,事务提交后是不能回滚的,所以多次提交事务,如果后面出现异常,那么已提交的事务是不能回滚的
如果希望所有操作全在一个事务中,可以将 batchSize 弄成与数据量一样的值,例如:
Db.batchSave("te_timeindex",indlist, indlist.size());
上面使用了 indlist.size() 作为 batchSize,那么 JDBC 在多数情况下只会提交一次数据
使用 indlist.size() 作为 batchSize 时,如果数据量特别大,例如超过 2 万行数据,那么 JDBC 仍然可能分批提交事务,这个可能与 mysql 配置的缓冲区大小有关, 一般几千条数据在一个 batch 中没事
2019-05-13 11:07
engine.setToClassPathSourceFactory() 这行代码指定了从 class path 以及 jar 包内读取模板
那么 getTemplate 的时候,使用的路径是相对于 class path 的根目录,以及 jar 包的根目录
但是你的模板目录是 "E:\code\jfDemo\target\WEB-INF\classes\tpl\"
上面两个目录再以 clas path 或 jar 包为根目录, 就错到十万八千里去了。因为你的 class path 已经处在 "E:\code\jfDemo\target\WEB-INF\classes\" 之下
应该使用:
engine.getTemplate("tpl/demo.tpl");
2019-05-10 19:36
@好好学习1111 记得搞定后回来分享一下,在分享频道:
jfinal.com/share