数据库批量插入语句:
INSERT INTO smart_message (
)values
(
#{obj.id,jdbcType=VARCHAR},
#{obj.createId,jdbcType=VARCHAR},
#{obj.receiveId,jdbcType=VARCHAR},
#{obj.groupId,jdbcType=VARCHAR},
#{obj.msgType,jdbcType=VARCHAR},
#{obj.msgApp,jdbcType=VARCHAR},
#{obj.msgGroupId,jdbcType=VARCHAR},
#{obj.createTime,jdbcType=TIMESTAMP},
#{obj.msgState,jdbcType=VARCHAR},
#{obj.contentType,jdbcType=VARCHAR},
#{obj.content,jdbcType=VARCHAR},
#{obj.deleted,jdbcType=VARCHAR}
)
java代码:
public void batchSaveSmartMessage(List list) throws Exception {
//数据总数
int count = list.size();
//每次插入条数
int batchCount = 500;
int ex = (count % batchCount) == 0 ? count / batchCount : (count / batchCount + 1);
for (int i = 0; i < ex; i++) {
int limit = count > batchCount ? (i * batchCount + batchCount) : count;
limit = i > 0 && limit <= batchCount ? i*batchCount + limit : limit;
//再此处进行数据库操作
objectMapper.batchInsertImChatMessage(list.subList(i*batchCount, limit));
count = count - batchCount;
}
}