【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()));
        });
    }

 

posted @ 2020-06-16 16:48  荣神益人  阅读(316)  评论(0)    收藏  举报