数据从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
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();
}
}
