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); } }
相关文章推荐
- mysql -e与awk联合导出csv文件
- mysql导出导入中文表解决方法
- oracle数据库数据的导出以及导入
- linux mysqldump 导出导入数据
- MySQL导入与导出.sql文件实操
- Hadoop数据经Hive汇总计算之后导出到Mysql
- MySQL导出数据库
- Oracle数据库的导出以及导入
- PHP导入导出mysql为sql文件的方法(已经验证,有实例,很好用)
- [转载]MySQL导出导入命令的用例
- Mysql导入导出工具Mysqldump和Source命令用法详解
- 学习 MySQL中导入 导出CSV
- Mysql导出表结构及表数据mysqldump的用法
- mysql导入导出sql
- MySQL导出所有Index 和 约束
- MySQL的导入和导出
- MySQL专题11之MySQL导出数据、MySQL导入数据
- Linux系统Mysql备份的导入导出
- oracle数据库命令行导入导出
- MySQL数据导入导出方法与工具介绍