2020-10-08 22:38

没用过这个数据库,如果这个库支持 ANSI Sql 标准,可以用一下 AnsiSqlDialect,配置一下:
arp.setDialect(new AnsiSqlDialect());

如果这个数据库是一个很不一样的存在,可能你需要扩展一下 Dialect

2020-10-08 18:04

@tctc4869 还是不知道你的具体需求是什么,希望你能写个分享,将所希望的用法直接写成类似于伪代码的形式

2020-10-08 16:49

@tctc4869 我不知道你希望的用法是怎样的,希望你能将你希望的用法,甚至你现在自己的扩展分享出来

如果很好用,可以引入后续的 jfinal 版本中,或许放开 controllerKey 的唯一性限制是件很简单的事情,例如在添加路由的时候去除 containsKey 判断可能就可以了

controllerKey 改名为 controllerPath

2020-10-08 15:19

@tctc4869 jfinal 后续要推的另一个框架会设计成多 Controller 共享同一个 path 的风格,但这个必须是要在 jfinal 生态建设之后的事,当前最重要提是建立 jfinal 生态

2020-10-08 15:14

Record 通常用于与数据库交互,别的场景也可以用,不限定

但别的场景,建议用更方便的 Kv

2020-10-04 12:10

@bluewindlan 直接 model.save 不是批量场景,就好比账户注册,文章发布这样一次保存一个 model 的场景

2020-10-04 11:04

@bluewindlan 封装的 model 不是慢,而是机制问题

你在 for 循环中 save,每次循环都会连接数据库,解析 sql,传送 sql 拿到结果,这里头除了数据库操作还有 IO 通信的工作

而你用 batch 来 save,整个过程是一次性的,一次性将所有数据发到数据库,这个是有本质区别的

我打个比方,假如一个快递公司要将 4000 个包裹从北京送到上海,如果用 for 循环,那就是每趟送一个包裹,一共需要 4000 趟。 如果每次送 4000 个,则只需一趟

2020-10-04 10:10

补充说明一下,jfinal 的数据库操作模块是对 JDBC 的极薄封装,理论上性能就是接近 JDBC, 出现性能问题肯定是必有的问题,例如查询未在索引上,造成全表扫描,再例如, sql 本身就很慢

简单来说,jfinal 只将你的 sql 与 para 直接递送给 JDBC,不干预这个过程

2020-10-04 10:08

for 循环中一条一条插入的性能肯定是很慢的,用一下 Db.batchSave 方法会快得多

2020-10-02 20:53

国庆长假清理需求、反馈开发列表,该需求已被支持:
https://gitee.com/jfinal/jfinal/commit/c19094cd165580f7d23e42e3574e424fb4c6da2d

2020-10-02 16:36

@听风道长

由于某些 linux 发行版缺少缺少显示设备、键盘或鼠标,无法支持 Graphics、Font、Color、ImageIO、Print、Graphics2D 等类的使用

jfinal 4.9.02 新增一个配置来解决:
me.setToJavaAwtHeadless();

有了上面这个配置,不必再折腾 linux 操作系统

2020-10-02 16:35

@all

由于某些 linux 发行版缺少缺少显示设备、键盘或鼠标,无法支持 Graphics、Font、Color、ImageIO、Print、Graphics2D 等类的使用

jfinal 4.9.02 新增一个配置来解决:
me.setToJavaAwtHeadless();

2020-10-02 16:35

@all

由于某些 linux 发行版缺少缺少显示设备、键盘或鼠标,无法支持 Graphics、Font、Color、ImageIO、Print、Graphics2D 等类的使用

jfinal 4.9.02 新增一个配置来解决:
me.setToJavaAwtHeadless();

2020-10-01 23:25

@小徐同学 该功能已被添加到新版本,配置方法如下:
Engine.setChineseExpression(true);

注意要在 addSharedFunction 之前配置