Java批处理写数据库的实例代码
来源:互联网 发布:存储过程怎么执行sql 编辑:程序博客网 时间:2024/04/30 19:48
- 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();
-
-
-
- long ltempstop=System.currentTimeMillis();
- System.out.println("executeBath的时间为:"+(ltempstop-ltempstart)/60);
- }
- }