conn = DBConn.getConnection("db3"); if (ol.get(0) instanceof Branch) { StringBuffer sb = new StringBuffer(); sb.append("MERGE INTO BRANCH T1 "); sb.append("USING (SELECT ? ID,? NAME,? A_ID FROM DUAL) T2 "); sb.append("ON (T1.BRANCH_ID=T2.ID) "); sb.append("WHEN MATCHED THEN UPDATE SET T1.BRANCH_NAME=T2.NAME,T1.AREA_ID=T2.A_ID "); sb.append("WHEN NOT MATCHED THEN INSERT VALUES(T2.ID,T2.NAME,T2.A_ID)"); System.out.println("sql=" + sb.toString()); conn.setAutoCommit(false); ps = conn.prepareStatement(sb.toString()); for (int i = 0; i < ol.size(); i++) { Branch b = (Branch) ol.get(i); ps.setString(1,b.getBranchId()); ps.setString(2,b.getBranchName()); ps.setString(3,b.getAreaId()); System.out.println(b.toString()); ps.addBatch(); } ps.executeBatch(); conn.commit();
批量執行該MERGE語句 java