当前位置 : 主页 > 编程语言 > java >

oracle 数据导入到MySQL

来源:互联网 收集:自由互联 发布时间:2021-06-28
数据从oracle 导入到MySQL package io.example;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import jav
数据从oracle 导入到MySQL
package io.example;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException;

/**
 * 
 * @author tzj
 *
 */
public class DTSo2m {

	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		
		
		Class.forName("oracle.jdbc.driver.OracleDriver");
		
		Class.forName("com.mysql.jdbc.Driver");

		
		
//		Connection connectionO = DriverManager.getConnection("jdbc:oracle:thin:@10.3.52.x:1521/ship", "***",
//				"***");
//		
//		Connection connectionM=DriverManager.getConnection("jdbc:mysql://123.56.x.x:13306",
//				"***" , "***");
		
		Connection connectionO = DriverManager.getConnection("jdbc:oracle:thin:@10.3.x.x:1521/x", "***",
				"***");
		
		Connection connectionM=DriverManager.getConnection("jdbc:mysql://47.95.163.x:3306",
				"***" , "***");
		List
 
   list = new ArrayList<>();
		list.add("tb_api_order");
//		list.add("TB_GLOBAL_MANAGE_USER");
//		list.add("EMS_SEA_ORDER_IN");
//		list.add("ems_sea_declare_trans_info");
//		list.add("TB_GLOBAL_MENUS");
//		list.add("ems_sea_prov");
//		list.add("EMS_SEA_COUNTRY_CASCADE");
//		list.add("TB_EMS_SEA_DICT");
//		list.add("EMS_SEA_ADJUSTMENT");
//		list.add("EMS_SEA_ACCOUNT");
//		list.add("EMS_SEA_SKU");
//		list.add("EMS_SEA_STOREHOUSE");
//		list.add("ems_sea_sku_inventory");
//		list.add("EMS_SEA_NOTICE");
//		list.add("TB_GLOBAL_ROLE_R_MENUS");
//		list.add("EMS_SEA_STOCKNUM");
//		list.add("EMS_SEA_DECLARE_ORDER");
//		list.add("ems_sea_city");
//		list.add("TB_GLOBAL_GB_MENU");
//		list.add("EMS_SEA_BOX");
//		list.add("EMS_SEA_DECLARE_GOODS");
//		list.add("EMS_SEA_DELIVERYMODE");
//		list.add("TB_GLOBAL_USER_R_ROLE");
//		list.add("TB_GLOBAL_ROLE");
//		list.add("EMS_SEA_ORDER_IN_AUDIT");
//		list.add("EMS_SEA_HEAD_SKY");
//		list.add("EMS_SEA_HEAD_SEA");
//		list.add("EMS_SEA_FEE_LOG");
//		list.add("ems_sea_fee");
//		list.add("EMS_SEA_ORDER_OUT");
//		list.add("EMS_SEA_ORDER_IN_LOG");
//		list.add("EMS_SEA_ORDER_ITEM");
//		list.add("EMS_SEA_GOODS_TYPE");
//		list.add("EMS_SEA_BASE_INFO");
//		list.add("EMS_SEA_COUNTY");
//		list.add("TB_GLOBAL_USER_AUDIT");
//		list.add("EMS_SEA_ORDER_IN_AUDIT");
//		list.add("EMS_SEA_ORDER_OUT_LOG");
//		list.add("EMS_SEA_ATTACH_FILE");
//		list.add("ems_sea_carrier");
//		list.add("EMS_SEA_RETURN_ORDER");
//		list.add("EMS_SEA_TRANS_ORDER");
//		list.add("EMS_SEA_DECLARE_ORDER_HIS");
//		list.add("EMS_SEA_CLIENT_JOIN_ORDER");
//		list.add("EMS_SEA_BOX_HIS");
//		list.add("EMS_SEA_BOX_GOODS_HIS");
//		list.add("EMS_SEA_BOX_GOODS");
//		list.add("TMP_EMS_SEA_BOX_GOODS");
//		list.add("TMP_EMS_SEA_BOX");
//		list.add("EMS_SEA_AUDIT_RECORD");
//		list.add("EMS_SEA_RECHARGEDOWN");
//		list.add("EMS_SEA_USER_INVENTORY");
//		list.add("EMS_SEA_RECHARGE");
		for(String pram : list){
			oracleData2Mysql(connectionO, connectionM, pram);
		}
	}
	
	/**
	 * 
	 * @param oracleConn 
	 * @param mysqlConn
	 * @param tabname
	 * @throws SQLException 
	 */
	public static  void oracleData2Mysql(Connection oracleConn,Connection mysqlConn,String tabname) throws SQLException{
		
		String where="	where  createdate> to_date('2017-11-23 00:00:00','yyyy-MM-dd HH24:mi:ss')";
		ResultSet resultSet=oracleConn.createStatement().executeQuery("SELECT *  FROM "+tabname+where);
		
		
		StringBuilder insertBuilder=new StringBuilder("insert into `"+tabname+"`");
		
		StringBuilder colBuilder=new StringBuilder("(");
		StringBuilder valBuilder=new StringBuilder(" values(");
		ResultSetMetaData metaData=
				resultSet.getMetaData();
		
		
		for (int i = 0; i < metaData.getColumnCount(); i++) {
			
			 colBuilder.append("`"+metaData.getColumnName(i+1)+"`,");
			 valBuilder.append("?,");
		}
		
		colBuilder.append(")");
		valBuilder.append(")");
		
		insertBuilder.append(colBuilder).append(valBuilder);
		
		
		String prepareSql=insertBuilder.toString().replaceAll(",\\)", ")");
		PreparedStatement preparedStatement=mysqlConn.prepareStatement(prepareSql);
		int  count=0;
		
		
		System.out.println("执行"+prepareSql);
		while(resultSet.next()){
			
			for (int i = 0; i < metaData.getColumnCount(); i++) {	
				
				int colindex=i+1;
				preparedStatement.setObject(colindex,resultSet.getObject(colindex),metaData.getColumnType(colindex));
				preparedStatement.setString(i+1, resultSet.getString(i+1));
			}
			
			try {
				count+=preparedStatement.executeUpdate();
			} catch (MySQLIntegrityConstraintViolationException e) {
				e.printStackTrace();
				continue;
			}
//			if(count%100==0){
//				//mysqlConn.commit();
//				System.out.println("save");
//			}

			System.out.println("更新"+count+"条");
			
			
		}
		
		//mysqlConn.commit();
	}

}
 
上一篇:adapter
下一篇:分享到微信,qq
网友评论