使用JdbcTemplate的BatchPreparedStatementSetter批量插入数据

本文展示了如何使用JdbcTemplate从一个数据库查询数据并存储到List<Map<String,Object>>中,然后将这些数据批量写入到另一个数据库。主要涉及的关键类包括JdbcTemplate和BatchPreparedStatementSetter,以及DruidDataSource的配置。整个过程包括查询SQL、插入SQL的编写,以及JdbcTemplate的batchUpdate方法的使用。

记录:397

场景:使用JdbcTemplate从一个数据库批量查出数据存放在List<Map<String, Object>>中,把查出的结果数据批量写入到另一个数据库。

版本:JDK 1.8,SpringBoot 2.6.3

关键类01:org.springframework.jdbc.core.JdbcTemplate

关键类02:org.springframework.jdbc.core.BatchPreparedStatementSetter

1.批量查询和批量写入

public static void main(String[] args) {
  // 1.获取两个数据库的JdbcTemplate
  JdbcTemplate db01 = getJdbcTemplateDb01();
  JdbcTemplate db02 = getJdbcTemplateDb02();
  // 2.查询SQL和插入SQL
  String db01SelectSQL = getSelectSQL();
  String db02InsertSQL = getInsertSQL();
  // 3.批量查询
  List<Map<String, Object>> db01Result = db01.queryForList(db01SelectSQL);
  // 4.批量写入
  db02.batchUpdate(db02InsertSQL, new BatchPreparedStatementSetter() {
    @Override
    public void setValues(PreparedStatement ps, int i) throws SQLException {
      Map<String, Object> oneRow = db01Result.get(i);
      ps.setObject(1, oneRow.get("CITY_ID"));
      ps.setObject(2, oneRow.get("CITY_NAME"));
      ps.setObject(3, oneRow.get("LAND_AREA"));
      ps.setObject(4, oneRow.get("POPULATION"));
      ps.setObject(5, oneRo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值