JDBC连接方式批处理将数据插入MySQL、Oracle数据库中

一、工具类

连接工具类==> JDBC方式连接MySQL、Oracle、Hive、Spark等,通用工具类(Scala版),在此基础上添加批量插入的方法,代码如下:

def executeBatchUpdate(sqls: ArrayBuffer[String]){
    var conn:Connection = null
    var stat:Statement = null
    try {
      conn = getConnection()
      stat = conn.createStatement()

      for(sql<-sqls)
      {
        stat.addBatch(sql)
      }
      stat.executeBatch()
    }catch{
      case e : Exception => {
        throw new Exception(e)
      }
    }finally{
      if(stat!=null) {
        stat.close()
      }
      if(conn!=null){
        closeConnection()
      }
    }
  }

二、使用示例

 def bathInsertData(dataSet:Set[Map[String, Object]]):Unit = {
    val arrayBuffer = new ArrayBuffer[String]()
    var count = 1
    //可以在配置文件中配置,此处为方便写死
    val DB_BATCH_UPDATE_SIZE = 10 

    for (map <- dataSet) {
      //业务处理逻辑
      val insertSql = ""
      arrayBuffer += insertSql

      //batch insert
      if (count % DB_BATCH_UPDATE_SIZE == 0){
        JDBCUtil.executeBatchUpdate(arrayBuffer)
        arrayBuffer.clear()
      }
      count = count + 1
    }

    //batch insert
    JDBCUtil.executeBatchUpdate(arrayBuffer)
  }

Just enjoy it!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值