oracle数据库导出到mysql

来源:互联网 发布:java web嵌入式 编辑:程序博客网 时间:2024/06/05 04:53

需要的请根据自己的需求调整,代码简陋,但是搬砖还是可以的,对于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);                        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);    }}