資源描述:
《jdbc批量插入、批量刪除、批量更新》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、一、JDBC的批量插入JDBC批量插入主要用于數(shù)據(jù)導(dǎo)入和日志記錄因?yàn)槿罩疽话愣际窍葘懺谖募碌牡?。我用Mysql5.1.5的JDBCdriver分別對三種比較常用的方法做了測試方法一,使用PreparedStatement加批量的方法1.try{2.Class.forName("com.mysql.jdbc.Driver");3.conn=DriverManager.getConnection(o_url,userName,password);4.conn.setAutoCommit(false);5.Stringsql="INSERTadlogs(ip
2、,website,yyyymmdd,hour,object_id)VALUES(?,?,?,?,?)";6.PreparedStatementprest=conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);7.for(intx=0;x3、081009");11.prest.setInt(4,8);12.prest.setString(5,"11111111");13.prest.addBatch();14.}15.prest.executeBatch();16.conn.commit();17.conn.close();18.}catch(SQLExceptionex){19.Logger.getLogger(MyLogger.class.getName()).log(Level.SEVERE,null,ex);20.}catch(ClassNotFoundExceptionex){21
4、.Logger.getLogger(MyLogger.class.getName()).log(Level.SEVERE,null,ex);22.}try{Class.forName("com.mysql.jdbc.Driver");conn=DriverManager.getConnection(o_url,userName,password);conn.setAutoCommit(false);Stringsql="INSERTadlogs(ip,website,yyyymmdd,hour,object_id)VALUES(?,?,?,?,?)";P
5、reparedStatementprest=conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);for(intx=0;x6、ddBatch();}prest.executeBatch();conn.commit();conn.close();}catch(SQLExceptionex){Logger.getLogger(MyLogger.class.getName()).log(Level.SEVERE,null,ex);}catch(ClassNotFoundExceptionex){Logger.getLogger(MyLogger.class.getName()).log(Level.SEVERE,null,ex);}說明下在建Statement的時候,后面兩個參數(shù)的意
7、義:第一個參數(shù)指定ResultSet的類型。其選項(xiàng)有:TYPE_FORWARD_ONLY:缺省類型。只允許向前訪問一次,并且不會受到其他用戶對該數(shù)據(jù)庫所作更改的影響。TYPE_SCROLL_INSENSITIVE:允許在列表中向前或向后移動,甚至可以進(jìn)行特定定位,例如移至列表中的第四個記錄或者從當(dāng)前位置向后移動兩個記錄。不會受到其他用戶對該數(shù)據(jù)庫所作更改的影響。TYPE_SCROLL_SENSITIVE:象TYPE_SCROLL_INSENSITIVE一樣,允許在記錄中定位。這種類型受到其他用戶所作更改的影響。如果用戶在執(zhí)行完查詢之后刪除一個記錄,那個記
8、錄將從ResultSet中消失。類似的,對數(shù)據(jù)值的更改也將反映在ResultSe