您的位置:首页 > 编程语言 > Java开发

java(功能篇) java(mysql)数据库 实现数据批量插入

2014-09-11 09:58 916 查看
package com.emc.database;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import com.emc.model.DyLun;
import com.emc.service.DyLunService;

public class Demo {
	public static final String DBDRIVER = "com.mysql.jdbc.Driver";
	    public static final String DBURL = "jdbc:mysql://192.168.0.32:3306/iiiis";
	    public static final String DBUSER = "root";
	    public static final String DBPASS = "Vixuan724";
	    //java 除法取整函数
	    public static int getMyInt(int a,int b) {
	    	return(((double)a/(double)b)>(a/b)?a/b+1:a/b);
	    	}
	    //批处理处理信息量
	    private static final int processing=50;
	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {
		
		// TODO Auto-generated method stub
		Connection conn=null;
		        PreparedStatement ps=null;
		        String sql="insert into TB_DY_LUN (device_Id,VOLUME_ID_IN_ARRAY,VOLUME_NAME,VOLUME_TYPE,UPDATE_FLAG,NUMBER_OF_BLOCK,BLOCK_SIZE,RAID_LEVEL,HEALTH_STATE,VOLUME_ID_IN_HOST,update_time) values(?,?,?,?,?,?,?,?,?,?,?)";
		        Class.forName(DBDRIVER);
		        conn=DriverManager.getConnection(DBURL, DBUSER, DBPASS);
		         ps=conn.prepareStatement(sql);
		         
		         DyLunService service = new DyLunService();
		     	List<DyLun> list = service
		     			.getdylun("C:\\data\\emc\\Symm_StorageVolume.xml");
		     	//批处理循环次数
		         int k=getMyInt(list.size(),processing);
		         for(int j=0;j<k;j++){
		        	 //批处理数量
		        		for(int i = 0; i < 50; i++){
		        			int result=j*50+i;
		        			System.out.println("结果数:"+result);
		        			if(result<list.size()){
		        				DyLun lun = list.get(result);
					    		String s="select * from TB_DY_LUN where VOLUME_ID_IN_ARRAY='"+lun.getVolumeIdInArray()+"'";
					    		ResultSet set=DataBase.select(s);
					    		if (set.next()){
					    			//存在同名主键不做处理
					    		}else{
					    			ps.setString(1 ,lun.getDeviceId() );
					    			ps.setString(2, lun.getVolumeIdInArray());
					    			ps.setString(3,lun.getVolumeName() );
					    			ps.setString(4, lun.getVolumeType());
					    			ps.setString(5, lun.getUpdateFlag());
					    			ps.setInt(6, lun.getNumberOfBlock());
					    			ps.setInt(7, lun.getBlockSize());
					    			ps.setString(8, lun.getRaidLevel());
					    			ps.setString(9, lun.getHealthState());
					    			ps.setString(10, lun.getVolumeIdInHost());
					    			Date date = new Date();
					    			SimpleDateFormat dateFormat = new SimpleDateFormat(
					    					"yyyy/MM/dd HH:mm:ss");
					    			ps.setString(11, dateFormat.format(date.getTime()).toString());
					    			ps.addBatch();
					    		}
		        				
		        			}
				    	
				    		
				    	}
		        		 int trmp[]=ps.executeBatch();
				         System.out.println("更新了"+trmp.length+"条数据。。");
		        	 
		         }
		     
		        
		        ps.close();
		        conn.close();
	}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: