Java實現oracle資料批量操作
阿新 • • 發佈:2018-12-19
java事務處理
TestDemo:結合位於java.sql下面的介面 PreparedStatement和oracle事務實現批量刪除
常用方法:
int [] executeBatch():
將一批命令提交給資料庫來執行,如果全部命令執行成功,則返回更新計陣列成的陣列。
void setString(int parameterIndex,String x):
將指定引數設定為給定Java String 值。在將此值傳送給資料庫時,驅動程式將它轉換成一個 SQL VARCHAR 或 LONGVARCHAR 值。
Demo
public Boolean DeleteUser(String[] userId){ //一個執行緒安全的可變字串 StringBuffersb=new StringBuffer(); sb.append("deletefrom t_user where user_id =?"); Connectionconn=null; PreparedStatementpsmt = null; Booleanflag=false; conn=DButil.getConnection(); try { //關閉自動提交事務 conn.setAutoCommit(false); //建立一個 PreparedStatement 物件來將引數化的 SQL語句傳送到資料庫。 psmt= conn.prepareStatement(sb.toString()); //將一組引數新增到此 PreparedStatement 物件的批處理命令中。 for(inti =0 ;i<userId.length;i++){ psmt.setString(1,userId[i].trim()); psmt.addBatch(); } // 執行批量更新 psmt.executeBatch(); // 語句執行完畢,提交本事務 conn.commit(); flag=true; }catch (SQLException e) { //TODO Auto-generated catch block e.printStackTrace(); try{ conn.rollback(); }catch (SQLException e1) { //TODO Auto-generated catch block e1.printStackTrace(); } } returnflag; }