- Java写数据库时的批处理程序示例
- StringBuilder sUpdateSQL = new StringBuilder(80);
- sUpdateSQL.append("UPDATE ");
- sUpdateSQL.append("表名");
- sUpdateSQL.append(" SET title=? WHERE username=? AND password=?");
- sUpdateSQL.trimToSize();
- pstat = conn.prepareStatement(sUpdateSQL.toString());
- /* 控制总的处理的次数,也就是页数 */
- for (int i = 0; i < nTotalRow; i++) {
- /* 计算当前的起始行数与终止行数 */
- long lStart = i * nReadRowCount;
- long lStop = (i + 1) * nReadRowCount;
- if (lStop > lTotalSize) {
- lStop = lTotalSize;
- }
- StringBuilder sql = new StringBuilder(210);
- sql.append("SELECT password,username FROM (");
- sql.append("SELECT password,username,ROWNUM PGINFO_RN FROM(");
- sql.append("SELECT password,username FROM ");
- sql.append("表名");
- sql.append(")PGINFO WHERE ROWNUM <=?");
- sql.append(") WHERE PGINFO_RN >?");
- sql.trimToSize();
- /* 查询该段范围内的数据,进行处理 */
- ArrayList<TempVO> list = getPartResult(
- sql.toString(), nReadRowCount, lStop, lStart);
- for (TempVO tempVO : list) {
- pstat.setInt(1, 2);
- pstat.setString(2, tempVO.getUserName());
- pstat.setString(3, tempVO.getPassWord());
- pstat.addBatch();
- }
- long ltempstart=System.currentTimeMillis();
- pstat.executeBatch();
- conn.commit();
- /*更新之后还源到计数的初始状态*/
- //pstat.clearBatch();
- long ltempstop=System.currentTimeMillis();
- System.out.println("executeBath的时间为:"+(ltempstop-ltempstart)/60);
- }
- }
Java批处理写数据库的实例代码
最新推荐文章于 2023-02-25 16:23:00 发布