mysql jdbc批量更新_jdbc批量更新数据

{

boolean add = true;

Connection conn = null;

PreparedStatement pst = null;

String sql = null;

try

{

conn = this.getConnection();

conn.setAutoCommit(false);

// sql = "MERGE INTO PUSH_NUMBER T1 "

// + " USING (SELECT ? AS MOBILE, ? AS PKG_ID FROM DUAL) T2 "

// + " ON (T2.MOBILE=T1.USER_NUMBER AND T2.PKG_ID=T1.PKG_ID) " + " WHEN NOT MATCHED THEN "

// + " INSERT VALUES(SEQ_PUSH_NUMBER.NEXTVAL,?,?)";

sql = "insert into PUSH_NUMBER(NUMBER_ID,USER_NUMBER,PKG_ID) values(null,?,?)";

pst = conn.prepareStatement(sql);

int num = 0;

for (String mobile : numbers)

{

num++;

pst.setString(1, mobile);

pst.setInt(2, pkgId);

pst.addBatch();

if (num % 30000 == 0)

{

pst.executeBatch();

pst.clearBatch();

}

}

if (num > 0)

{

pst.executeBatch();

}

conn.commit();

}

catch (Exception e)

{

add = false;

logger.error("addNumber was failed!", e);

}

finally

{

if (null != pst)

{

pst.close();

}

if (null != conn)

{

conn.close();

}

}

return add;

}

spring jdbc批量入库

//采用insert into replace 检测手机号码是否存在,存在更新,不存在新增

String sql = "insert into push_token(token,mobile) values(?,?) on DUPLICATE KEY UPDATE token = ?";

List args = new ArrayList();

for (int i = 0; i < tokens.size(); i++) {

Object[] objects = new Object[]{tokens.get(i), mobiles.get(i), tokens.get(i)};

args.add(objects);

}

//3000条提交一次

ArrayList temp = new ArrayList(3000);

List copy = null;

for (Object[] objects : args) {

temp.add(objects);

if (temp.size() >= 3000) {

copy = (List) temp.clone();

temp.clear();

if (temp.isEmpty() && copy.size() >= 3000) {

getJdbcTemplate().batchUpdate(sql, copy);

}

}

}

if (temp.size() > 0) {

copy = (List) temp.clone();

temp.clear();

if (temp.isEmpty() && copy.size() > 0) {

getJdbcTemplate().batchUpdate(sql, copy);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值