【Spring Data Access】JdbcTemplate 批量插入 - 程序员大本营
https://www.pianshen.com/article/960717619/
String sql = "INSERT IGNORE INTO rec_user_recommend_pool_v2(user_id, reading_amount, sort_value, geohash) VALUES(?,?,?,?)"; jdbcTemplate.batchUpdate(sql, list, 1000, (ps, argument) -> { ps.setInt(1, CollectionUtil.getItemInt(argument, "user_id")); ps.setInt(2, CollectionUtil.getItemInt(argument, "reading_amount")); ps.setInt(3, CollectionUtil.getItemInt(argument, "sort_value")); ps.setString(4, GeoUtil.geohash(CollectionUtil.getItemDouble(argument, "longitude"), CollectionUtil.getItemDouble(argument, "latitude"), 24)); });
private void addReadingFollowFeed(String sql) { List<Map<String, Object>> list = jdbcTemplate.queryForList(sql+"; -- maxscale route to master"); String sqlBatch = "INSERT IGNORE INTO kid_reading_follow_feed(receiver,operator,content_type,content_id,time) VALUES(?,?,?,?,?)"; jdbcTemplate.batchUpdate(sqlBatch, list, 1000, (ps, argument) -> { int receiver = CollectionUtil.getItemInt(argument, "receiver"); int operator = CollectionUtil.getItemInt(argument, "operator"); int content_type = CollectionUtil.getItemInt(argument, "content_type"); int content_id = CollectionUtil.getItemInt(argument, "content_id"); Date time = CollectionUtil.getItemDate(argument, "time"); ps.setInt(1, receiver); ps.setInt(2, operator); ps.setInt(3, content_type); ps.setInt(4, content_id); ps.setDate(5, new java.sql.Date(time.getTime())); }); }

浙公网安备 33010602011771号