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