JDBC批量插入优化addbatch


//  获取要设置的Arp基准的List后,插入Arp基准表中 	
	public boolean insertArpStandardList(List list) {
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		//MySql的JDBC连接的url中要加rewriteBatchedStatements参数,并保证5.1.13以上版本的驱动,才能实现高性能的批量插入。
		//优化插入性能,用JDBC的addBatch方法,但是注意在连接字符串加上面写的参数。
		//例如: String connectionUrl="jdbc:mysql://192.168.1.100:3306/test?rewriteBatchedStatements=true" ; 
		
		String sql = "insert into arp_standard(guid, devicebrand, devicename, deviceip, ipaddress, " +
				     "macaddress, createtime) values(?,?,?,?,?,?,?)";
		
		try{
			conn = DBConnection.getConnection();
			ps = conn.prepareStatement(sql);
			
			//优化插入第一步		设置手动提交   
			conn.setAutoCommit(false);  
			
			int len = list.size();
			for(int i=0; igetArpInfoList() error:" + e.getMessage());
			return false;	//出错才报false
		} finally {
			DBConnection.closeConection(conn, ps, rs);
		}
		return true;
	}

  效率要比一条一条插入快近60倍。比如for循环或者insert into table test select * from....