用java同步两个oracle数据库中的表数据,两个库表的表结构相同,指定两个数据库的表实现多表并发执行同步
时间: 2023-11-27 10:52:43 浏览: 89
java多个数据库实现数据同步
4星 · 用户满意度95%
你可以考虑使用Java中的JDBC连接Oracle数据库,并使用SELECT和INSERT语句实现数据同步。具体步骤如下:
1. 使用JDBC连接第一个Oracle数据库,并查询需要同步的表中的数据,将其存储在一个Java对象中。
2. 使用JDBC连接第二个Oracle数据库,并将Java对象中的数据插入到需要同步的表中。
3. 可以使用Java的多线程技术,将多个表的同步操作并发执行,提高同步效率。
下面是一个简单的示例代码,用于将第一个Oracle数据库中的表user同步到第二个Oracle数据库中:
```java
import java.sql.*;
public class OracleSync {
public static void main(String[] args) {
String url1 = "jdbc:oracle:thin:@//host1:port1/sid1";
String url2 = "jdbc:oracle:thin:@//host2:port2/sid2";
String user = "username";
String password = "password";
try {
// 连接第一个Oracle数据库
Connection conn1 = DriverManager.getConnection(url1, user, password);
Statement stmt1 = conn1.createStatement();
// 查询需要同步的数据
ResultSet rs = stmt1.executeQuery("SELECT * FROM user");
// 连接第二个Oracle数据库
Connection conn2 = DriverManager.getConnection(url2, user, password);
Statement stmt2 = conn2.createStatement();
// 将查询结果插入到第二个数据库的表中
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
String sql = "INSERT INTO user(id, name, age) VALUES (" + id + ", '" + name + "', " + age + ")";
stmt2.executeUpdate(sql);
}
// 关闭连接
rs.close();
stmt1.close();
conn1.close();
stmt2.close();
conn2.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
你可以根据自己的需求修改代码,实现多表并发执行同步。
阅读全文