批量插入,第一条记录拼接sql 导致的保存问题

首先感谢作者开源了这么优秀的框架。

我尝试用jFinal的时候遇见了一个批量插入的问题:

我用批量添加处理保存逻辑。

然后发现,我的List中model有些字段是有些是为空的,而批量插入的时候。默认以第一条记录的拼接的sql去处理保存逻辑。

这样导致的问题就是,如果List中model的第一条记录如果只有一个记录,插入sql就是

insert into table values(key1) values(?)

所以做批量插入的时候,就会导致只保存一个字段。

不知道是我用的姿势不对,还是其他问题,希作者或者其他高手解答。

希望能帮到大家。

再次感谢作者。


评论区

琴海森林

2020-09-16 16:22

批量插入就是以第一条数据字段作为SQL模板的,空缺的字段可以设置空字符串“”

doubuxingle

2020-09-16 18:12

我目前的做法是给model内的每个字段一个标记,有值为1,无值为0. 按顺序把所有字段全部拼接成二进制格式再转int,通过int值把整批数据进行分类然后做批量处理。

杜福忠

2020-09-16 18:41

String sql = "insert into user(name, cash) values(?, ?)";
int[] result = Db.use().batch(sql, "name, cash", modelList, 500);

JFinal

2020-09-20 17:01