JDBC大批量写入数据到SQLServer2000,记录数大于10000

		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();

			}

		}

你可能感兴趣的:(sqlserver2000)