package DataTransfer;import java.sql.*;
import java.lang.Exception;
import java.util.ArrayList;
import java.util.List;/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: networksh</p>
* @author duantang
* @version 1.0
*/public class DataOperating {
public DataOperating() {
} /*
* 根据用户提供的Oracle数据库的ip,用户名,密码进行数据库的连接
* 从oracle数据库表中提取全部记录
* 返回类型:ArrayList
*/
public List EduceFormOracle(String ip, String sUsr, String sPwd,
String table) throws Exception {
List queryResult = new ArrayList();
List recordLine = new ArrayList();
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@" +
ip + ":1521:ORCL", sUsr, sPwd);
Statement stmt = con.createStatement();
String sql = "select * from " + table;
ResultSet rs = stmt.executeQuery(sql); ResultSetMetaData rsmd = rs.getMetaData();
int numCols = rsmd.getColumnCount();
boolean more = rs.next();
while (more) {
for (int i = 1; i <= numCols; i++) {
recordLine.add(rs.getObject(i));
}
queryResult.add(recordLine);
more = rs.next();
} rs.close();
stmt.close();
con.close(); return queryResult; } /*
* 根据用户提供的MySql数据库的ip,用户名,密码进行数据库的连接
* 把ResultSet结果集插入到MySql数据库中
* 无返回值
*/ public void InsertToMysql(String ip, String sUsr, String sPwd,
List rs, String table) throws Exception {
Class.forName("org.gjt.mm.mysql.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://" + ip +
":3306/myDatabaseName", sUsr, sPwd);
Statement stmt = con.createStatement();// Object[] array = new Object[rs.size()];
// rs.toArray(array);
for (int i = 0; i < rs.size(); i++) {
List recordLine = (List) rs.get(i);
String V0 = (String) recordLine.get(0);
String V1 = (String) recordLine.get(1);
String V2 = (String) recordLine.get(2);
String V3 = (String) recordLine.get(3);
String V4 = (String) recordLine.get(4);
String sql = "insert into" + table + "( T1, T2, T3, T4, T5) VALUES ("+V0+","+ V1+","+ V2+","+ V3+","+ V4+")";
stmt.executeUpdate(sql);
}
stmt.close();
con.close(); }
}
import java.lang.Exception;
import java.util.ArrayList;
import java.util.List;/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: networksh</p>
* @author duantang
* @version 1.0
*/public class DataOperating {
public DataOperating() {
} /*
* 根据用户提供的Oracle数据库的ip,用户名,密码进行数据库的连接
* 从oracle数据库表中提取全部记录
* 返回类型:ArrayList
*/
public List EduceFormOracle(String ip, String sUsr, String sPwd,
String table) throws Exception {
List queryResult = new ArrayList();
List recordLine = new ArrayList();
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@" +
ip + ":1521:ORCL", sUsr, sPwd);
Statement stmt = con.createStatement();
String sql = "select * from " + table;
ResultSet rs = stmt.executeQuery(sql); ResultSetMetaData rsmd = rs.getMetaData();
int numCols = rsmd.getColumnCount();
boolean more = rs.next();
while (more) {
for (int i = 1; i <= numCols; i++) {
recordLine.add(rs.getObject(i));
}
queryResult.add(recordLine);
more = rs.next();
} rs.close();
stmt.close();
con.close(); return queryResult; } /*
* 根据用户提供的MySql数据库的ip,用户名,密码进行数据库的连接
* 把ResultSet结果集插入到MySql数据库中
* 无返回值
*/ public void InsertToMysql(String ip, String sUsr, String sPwd,
List rs, String table) throws Exception {
Class.forName("org.gjt.mm.mysql.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://" + ip +
":3306/myDatabaseName", sUsr, sPwd);
Statement stmt = con.createStatement();// Object[] array = new Object[rs.size()];
// rs.toArray(array);
for (int i = 0; i < rs.size(); i++) {
List recordLine = (List) rs.get(i);
String V0 = (String) recordLine.get(0);
String V1 = (String) recordLine.get(1);
String V2 = (String) recordLine.get(2);
String V3 = (String) recordLine.get(3);
String V4 = (String) recordLine.get(4);
String sql = "insert into" + table + "( T1, T2, T3, T4, T5) VALUES ("+V0+","+ V1+","+ V2+","+ V3+","+ V4+")";
stmt.executeUpdate(sql);
}
stmt.close();
con.close(); }
}
public abstract Connection getSrcConnection(); //取得目的库的数据库连接
public abstract Connection getDestConnection(); //从源库取一条记录
public abstract SampleBean loadRecord(Connection conn, long id)
throws SQLException; //写一条记录到目的库
public abstract boolean writeRecord(Connection conn, SampleBean bean)
throws SQLException; //取批量任务
public abstract long[] loadTasks(Connection conn) throws SQLException; //执行批量移库任务
public int migrate(long[] recordIDs) throws SQLException {
int cnt = 0;
for (int i = 0; i < recordIDs.length; i++) {
long recordID = recordIDs[i]; Connection src_conn = getSrcConnection();
try {
SampleBean bean = loadRecord(src_conn, recordID);
if (bean != null) {
Connection dest_conn = getSrcConnection();
try {
boolean rt = writeRecord(dest_conn, bean); if (rt) {
cnt++;
//TODO: other thing
} else {
//TODO: other thing
} } finally {
try {
dest_conn.close();
} catch (SQLException e) {
//ignore or record this
}
}
}
} finally {
try {
src_conn.close();
} catch (SQLException e) {
//ignore or record this
}
}
} return cnt;
}}