2023-09-07 13:52

优先从 jar 包中加载, 打包时 sql 模板文件不要生成到 config 目录下,通过配置排除掉

2023-08-30 19:52

试用一下我提交的新版本代码,看还有没有问题,这个版本针对 BigDecimal 添加了 halfUp(int) 四舍五入功能,非常方便

2023-08-30 10:09

将 json 表示成一颗树,看一下树最深的地方是多少层

2023-08-30 10:05

@rctmlb 可能是 JDK 版本的问题,你是不是没有使用 Oracle 或者 OpenJdk 的版本? 可能有些比较偏门的 JDK 发行版本会有问题

无论如何,我这边代码已经调整过了,回发头个新版本给你:
https://gitee.com/jfinal/jfinal/commit/d95792105599e239ed5e87cf49bd19e4c449b64e

2023-08-29 19:36

primitiveToBoxedMap 这个对象是在 static 属性中 new 出来的,按理说不可能出现 null 值情况,你那是怎么出现的问题?请描述一下整个过程

2023-08-13 18:45

代码质量非常高,已 star + fork

无意中发现个问题,反馈一下:
public class OperLogInterceptor implements Interceptor {

@Override
public void intercept(Invocation ai) {
ai.invoke();
// ACTION执行后记录日志,多线程记录,提升访问性能
new Thread(() -> writeOperLog(ai)).start();
}
....
}


以上在线程中 writeOperLog 会有问题,建议将绝大部分代码不要放在新线程之中,而只是将数据库操作放在独立线程中,因为瓶颈在数据库:
log.save();

此外,每次请求 new Thread(...) 开销会很大,可以用上 jfinal 内置的线程池:
ThreadPoolKit.execute( () -》 writeOperLog(ai));

2023-06-27 20:53

@chcode 这些一直都可以,博主的需求是批量插入数据,获得所有批量数据的主键值,而不是一个

2023-06-26 21:18

试用了一下,速度非常快,就感觉跟本地部署一样,接入 chat gpt 这么快速怎么做到的?

2023-06-25 21:48

save(...) 最终是插行一条 insert 语句,一般会执行成功,否则会抛出异常,注意看一下 insert 语句的执行结果

2023-06-18 11:35

这个实现思路不仅创新,而且优雅,以前没人这么想过

经过这个改造,去除老项目代码中的重试代码,简单、清爽

Invocation 中 index++ 的改动,证明对 jfinal 核心有深刻把控,这个地方确实是为了防止 action 被调用多次的,点赞 + 收藏 一波

2023-06-04 21:01

一直想要有这么个工具,一直没时间写,这回有现成的了,感谢分享,收藏 + 点赞一波

2023-04-20 23:14

扩展 ISource 的方式很简洁,赞

2023-04-02 23:46

越玩越深入了 RSA 非对称加密都在玩了,先赞一个

2023-04-02 16:51

指令扩展是最高级、最强大的扩展方式,实现这个功能是最好的。谢谢分享

后面 arp 中的 enjoy sql 我考将 sqlKey 更名为 sqlId,所以,建议享主将 #sqlKey(...) 指令改为 #sqlId(...),能省点代码量