您的位置:首页 > 数据库 > Oracle

oracle数据库导出到mysql

2017-10-20 10:07 169 查看
需要的请根据自己的需求调整,代码简陋,但是搬砖还是可以的,对于mysql的插入时候可以修改引擎myisam这样可以快点。
import java.sql.*;

/**
* Created by admin on 17/10/19.
*/
public class MOConnect {

public Connection conn = null;// 创建一个数据库连接
public ResultSet res = null;// 创建一个结果集对象
public PreparedStatement stmt = null;

public Statement Connect(String sql, String url, String driver, String userName, String password) {

try {
Class.forName(driver);
conn = DriverManager.getConnection(url, userName, password);
stmt = conn.prepareStatement(sql);
return stmt;
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}

return null;
}

/**
* 返回 values(?,?,....)
*
* @param columnCount
* @return
*/
public String createInsertSuffix(int columnCount) {
String patten = "";
String sqlSuffix = "";
for (int i = 0; i < columnCount; i++) {
patten += "?,";
}
System.out.println(columnCount + "patt");
patten = patten.substring(0, patten.length() - 1);
sqlSuffix = " values(" + patten + ")";
return sqlSuffix;
}

public void executeInsert(int columnCount, PreparedStatement mysqlStmt, ResultSet res) throws SQLException {
for (int i = 1; i < columnCount + 1; i++) {
mysqlStmt.setString(i, res.getString(i));
}
mysqlStmt.execute();
}

public static void main(String[] args) throws SQLException {
String oracleDriver = "oracle.jdbc.driver.OracleDriver";
String oracleUrl = "jdbc:Oracle:thin:@你的IP:端口号:orcl";
String oracleUserName = "用户名";
String oraclePassWord = "密码";

String mysqlDriver = "com.mysql.jdbc.Driver";
String mysqlUrl = "jdbc:mysql://ip地址:端口号/report?useUnicode=yes&characterEncoding=UTF-8&useSSL=false";
String mysqlName = "用户名";
String mysqlPassWord = "密码";

String selectSqlPattern = "select * from ";
String insertSqlPattern = "insert into ";
//要导出的表名集合
String tables[] = {};

for (String table : tables) {
MOConnect moConnect = new MOConnect();
new Thread(new Runnable() {
@Override
public void run() {
try {
ResultSet oracleResult = null;
// String oracleSql = selectSqlPattern + table+ " where CREATEDDATE > to_date(?,'yyyy-mm-dd hh24:mi:ss')";
String oracleSql = selectSqlPattern + table;
System.out.println(oracleSql);

PreparedStatement oracleStmt = (PreparedStatement) moConnect.Connect(oracleSql, oracleUrl, oracleDriver, oracleUserName, oraclePassWord);
// oracleStmt.setString(1,"2017-10-01 00:00:00");
oracleStmt.execute();

ResultSetMetaData metaData = oracleStmt.getMetaData();

int columns = metaData.getColumnCount();
System.out.println("columns" + columns + " " + table);

4000
String insertSql = insertSqlPattern + table + moConnect.createInsertSuffix(columns);

PreparedStatement mysqlStmt = (PreparedStatement) moConnect.Connect(insertSql, mysqlUrl, mysqlDriver, mysqlName, mysqlPassWord);
System.out.println(insertSql);
oracleResult = oracleStmt.getResultSet();
while (oracleResult.next()) {
moConnect.executeInsert(columns, mysqlStmt, oracleResult);
}

} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
System.out.println(">>>>>>>>>>>>>>>>>>>>>" + table);
}

//ResultSet oracleResult = oracleStmt.getResultSet();
// while ()
//Statement mysqlResult = moConnect.Connect(mysqlSql,mysqlUrl,mysqlDriver,mysqlName,mysqlPassWord);
}
}

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