若存在則修改,若不存在則插入

oracle爲咱們提供了一個關鍵字merge
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

相關文章
相關標籤/搜索