2019-06-11 21:38

注意看异常这部分:
Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.jfinal.captcha.CaptchaRender
at com.jfinal.render.RenderFactory.getCaptchaRender(RenderFactory.java:171)

看一下 RenderFactory.java 的 171 行是什么代码,贴出来看一下

2019-06-11 21:36

绝大多数情况下不需要,当没有引用指向对象时,java 垃圾回收会回收掉这些内存

查询数据的时候,绝大多数情况下不要一次性查出很多数据,用好 paginate 方法分页获取

当然,也有一些场景需要一次性获取很多数据。除此之外的情况在 sql 中用好 limit , 或者用 paginate 分页

2019-06-11 20:05

@jiaoshuren 几年前 jfinal 老群里面的一位同学做的项目

2019-06-11 20:03

@happyboy 那你将你自己项目中的东东 copy 到 jfinal 官网下载的 demo 中去,然后看能不能重现问题,如果不出问题了,证明是你项目的配置有问题

2019-06-11 18:06

@久伴轻尘 关于 Db + Record 的用法,我见过一个最让我映象深刻的用法

有个同学使用 Db + Record 做了一个通用的查询系统,通用到何等程度:
1:头部是一系列的下拉,可以选择表名、字段名、查询条件

2:头部还提供了输入框,针对于 sql 的 where 子句,可以输入查询条件

3:查询条件可以手动输,也可以通过下拉的方式选择字段、大于小于等于这些条件,连输入条件也可以省去

4:可以将某个搜索使用的条件保存下来,并为这个查询起个名次,下次查询的时候不必重复选择和输入查询数据
例如,他发现某个查询经常要去做,那么保存为 “今日订单”、“本周销售总额”,那么下次要查询的时候选择一下这个查询就可以省去手动输的麻烦

5:这位同学希望查询出来的结果是按 select 后的次序来显示的,所以配置了这个:
arp.setContainerFactory(new OrderedFieldContainerFactory());

有了这个查询系统,任何人都可以无比灵活地去查询整个库中的数据。 这个公司有了这个通用的查询系统,再也不必单独开发这样一个项目了,节省了很多成本

2019-06-11 17:58

@久伴轻尘 对自己的项目,有针对、有方向性的去封装,能将效率再提升一个层次,有很多人都是你这么来封装的,超爽

2019-06-11 17:40

@久伴轻尘 你这个也是动态生成的,那么字符 `` 就是必须的了

真正懂 jfinal 的人,jfinal 拿在手里就是效率利器

2019-06-11 17:38

鼠标停放在 Db.batchUpdate 方法上,会弹出示例代码,按示例来写代码即可

2019-06-11 17:24

@开发工程师 解决后一定要回来分享

这个问题在我这是从来没有的,这类问题解决后分享出来,为后来碰到问题的人节省时间

2019-06-11 17:16

@久伴轻尘 如果不是 mysql 的关键字/保留字,sql 中不建议使用 `` 字符, 太麻烦了

jfinal 生成的 sql 中带有这些字符,是因为 sql 是动态生成的,可能会出现 `` 字符,所以才这样做

2019-06-11 17:15

这个肯定是开发环境的问题,找不到类文件

通常是由于 maven 依赖不对,或者缺少 jar 包,仔细排查

2019-06-11 16:59

@jiangkeju 如果是 JDK 1.7 或以上版本,可以采用 try with resources 语法,更省代码:
try (Connection conn = xxx.getConnection()) {
....
}

2019-06-11 16:58

@jiangkeju 必须要卡在这里,自行获取的 Connection 对象,需要在 finally 块中关闭,否则资源泄露

Connection conn = null;

try {
conn = xxx.getConnection();
....
} finally {
if (conn != null) {conn.close();}
}

2019-06-11 15:53

JFinal.me().getAllActionKeys() 打完收工

2019-06-11 15:52

@南香权 异常栈中没有出现过 "com.jfinal." 这个包名,问题肯定是与 jfinal 无关的

从异常表面上来看,是你的 web.xml 中配置了一个 Listener,而这个东东对 Spring 有依赖:
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

此外,如果你的项目确实没有问题,注意一下 tomcat 下的 webapps 目录下面是否部署了别的项目。知道项目只要扔到 tomcat 的 webapps 下面就会被加载