JDBC大批量写入数据到SQLServer2000,记录数大于10000
            (编辑:jimmy 日期: 2025/10/31 浏览:2)
         
        复制代码 代码如下:
SpObserver.putSp("sessionFactory1"); 
SimpleDateFormat fomat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
Session s=null; 
s=daoSupport.getSessionFactory().openSession(); 
Connection con=s.connection(); 
Statement stmt = null; 
try { 
stmt=con.createStatement(); 
con.setAutoCommit(false); 
Iterator it=list.iterator(); 
int iCount = 1; 
long start = System.currentTimeMillis(); 
while(it.hasNext()){ 
TResultWaterZId t = (TResultWaterZId)it.next(); 
StringBuffer sb = new StringBuffer(); 
sb.append("insert into T_result_water_z(schemeid,stcd,z,tm) values('"); 
sb.append(t.getSchemeid()).append("','").append(t.getStcd()).append("','"); 
sb.append(t.getZ()).append("','").append(fomat.format(t.getTm())).append("')"); 
stmt.addBatch(sb.toString()); 
if(iCount % 1000 == 0){ 
stmt.executeBatch(); 
stmt.clearBatch(); 
} 
iCount++; 
} 
stmt.executeBatch(); 
stmt.clearBatch(); 
con.commit(); 
long end = System.currentTimeMillis(); 
System.out.println("addTResultWaterZId used time:"+(end-start)); 
stmt.close(); 
con.close(); 
} catch (SQLException e) { 
try { 
con.rollback(); 
} catch (SQLException e1) { 
e1.printStackTrace(); 
} 
e.printStackTrace(); 
}finally{ 
try { 
stmt.close(); 
con.close(); 
} catch (SQLException e) { 
e.printStackTrace(); 
} 
}