batchSave 存储同个Model但是拥有不同字段的对象的问题

@JFinal  波总,发现Db.batchSave(modelList, batchSize)在做批量存储是,如果Model中,分别是不同的字段,那么batchSave在做存储的时候,只会根据第一个Model生成相关的sql语句,后面的model存在不同的字段,就无法存储了?

 关于这个问题,怎么解决比较好嘞?用Db.batch(sqlList, batchSize)?

评论区

JFinal

2017-02-23 11:51

Db.batchSave(...) 仅仅是对 JDBC 的 batch 执行 sql 功能的一个极薄封装,而 JDBC 的 batch 功能使用的是 PreparedStatement ,只能接受一条 sql,这也决定了 Db.batchSave 只能接受一条 sql + 多组参数的工作模式

Db.batchXxx(...),带 List sql 的参数 api 工作模式是使用的 Statement,可以接受多条 sql,但坏处是不接受参数,所以要将所有 sql 拼接好

Db.batchXxx(...),带 List modelOrRecord 的工作模式也是使用的 Statement,可以接受一条 sql 与多个参数,但参数名是固定的

只有以上三类 batch 方法,使用者需要对此做出权衡

潇洒太爷

2017-02-23 14:19

@JFinal 好的,谢谢波总

让太阳把我煮熟

2017-02-23 14:54

@潇洒太爷 哈哈,感觉你提到反馈我都遇到过,本来想着在社区给反馈下,但是后面都忘了,给你点赞

潇洒太爷

2017-02-28 12:42

@让太阳把我煮熟 哈,多反馈,让更多的人可以再官网查找到答案

热门反馈

扫码入社