王立凯 發表於 2023-10-9 00:00:00

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]
查看完整版本: JDBC大批量写入数据到SQLServer2000,记录数大于10000