该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
请给位大佬看看,执行效率很慢,执行到executeBatch 就卡住了
public static void updateCategory_ID() {
try {
con = DBConn.getConnection();
String sql = "select * from O8100_SPXX_201907_3 where category_id like '%//%' ";
String sql1 = "update O8100_SPXX_201907_3 set category_id =? where goods_id =?";
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
ps = con.prepareStatement(sql1);
con.setAutoCommit(false);
while (rs.next()) {
String category_id = rs.getString("category_id");
String[] array = category_id.split(" ");
String category_id1 = "";
for (int i = 0; i < array.length; i++) {
Matcher matcher = Pattern.compile("(com/|item/)(\\d+)").matcher(array[i]);
while (matcher.find()) {
category_id1 = matcher.group(2) + " " + category_id1;
}
}
ps.setString(1, category_id1);
ps.setString(2, rs.getString("goods_id"));
ps.addBatch();
System.out.println(category_id1);
}
ps.executeBatch();
con.commit();// 执行完后,手动提交事务
con.setAutoCommit(true);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
if (con != null) {
con.close();
}
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}