Java 实现两个数据库数据的迁移

  原料:mysql,sqlite3

  思想步骤:

    首先从一个数据库取出数据,每取一条就添加到另一个数据库。

  示例:

 
  
import java.sql.*;

public class SQLite_To_MySQL {

private Connection getIteconn(){
try {
Class.forName("org.sqlite.JDBC");
return DriverManager.getConnection("jdbc:sqlite:E:\\MyDB\\lagou.db");
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
return null;
}
private Connection getMysqlconn(){
try {
Class.forName("org.mariadb.jdbc.Driver");
return DriverManager.getConnection("jdbc:mariadb://localhost:3306/test","oukele","oukele");
} catc
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Java代码实现Oracle到Oracle的表迁移的一个示例: ```java import java.sql.*; public class OracleTableMigration { public static void main(String[] args) { Connection sourceConn = null; Connection targetConn = null; Statement sourceStatement = null; Statement targetStatement = null; ResultSet resultSet = null; String sourceUrl = "jdbc:oracle:thin:@source_server:1521:ORCL"; String sourceUser = "source_username"; String sourcePassword = "source_password"; String targetUrl = "jdbc:oracle:thin:@target_server:1521:ORCL"; String targetUser = "target_username"; String targetPassword = "target_password"; try { // Connect to source database sourceConn = DriverManager.getConnection(sourceUrl, sourceUser, sourcePassword); sourceStatement = sourceConn.createStatement(); // Connect to target database targetConn = DriverManager.getConnection(targetUrl, targetUser, targetPassword); targetStatement = targetConn.createStatement(); // Query source table String query = "SELECT * FROM source_table"; resultSet = sourceStatement.executeQuery(query); // Create target table ResultSetMetaData rsmd = resultSet.getMetaData(); int columnCount = rsmd.getColumnCount(); String columns = ""; for (int i = 1; i <= columnCount; i++) { String name = rsmd.getColumnName(i); String type = rsmd.getColumnTypeName(i); columns += name + " " + type + ","; } columns = columns.substring(0, columns.length() - 1); String createTable = "CREATE TABLE target_table (" + columns + ")"; targetStatement.executeUpdate(createTable); // Insert data into target table while (resultSet.next()) { String insert = "INSERT INTO target_table VALUES ("; for (int i = 1; i <= columnCount; i++) { String value = resultSet.getString(i); if (value == null) { insert += "null,"; } else { insert += "'" + value.replace("'", "''") + "',"; } } insert = insert.substring(0, insert.length() - 1) + ")"; targetStatement.executeUpdate(insert); } System.out.println("Table migration completed successfully."); } catch (SQLException e) { System.out.println("Table migration failed. Error message: " + e.getMessage()); } finally { try { if (resultSet != null) resultSet.close(); if (sourceStatement != null) sourceStatement.close(); if (sourceConn != null) sourceConn.close(); if (targetStatement != null) targetStatement.close(); if (targetConn != null) targetConn.close(); } catch (SQLException e) { System.out.println("Failed to close database connection. Error message: " + e.getMessage()); } } } } ``` 在这个示例中,我们使用JDBC连接到源数据库和目标数据库,然后执行以下操作: 1. 查询源表。 2. 创建目标表,使用与源表相同的列名和数据类型。 3. 将源表中的数据插入到目标表中。 请注意,这个示例假定源表和目标表在两个不同的数据库中。如果源表和目标表在同一个数据库中,您可以省略连接到第二个数据库的步骤,并将目标表的名称设置为源表的名称。 此外,请注意,这个示例只能处理普通的表。如果源表包含视图、存储过程或其他类型的数据库对象,您需要采取不同的方法来进行迁移

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值