public class Test {
public static void main(String[] args) {
String sourceDbUrl = "jdbc:mysql://source_database_url";
String sourceUsername = "source_username";
String sourcePassword = "source_password";
String targetDbUrl = "jdbc:mysql://target_database_url";
String targetUsername = "target_username";
String targetPassword = "target_password";
try {
Connection sourceConnection = DriverManager.getConnection(sourceDbUrl, sourceUsername, sourcePassword);
Connection targetConnection = DriverManager.getConnection(targetDbUrl, targetUsername, targetPassword);
String query = "SELECT column1, column2, column3 FROM table";
PreparedStatement preparedStatement = sourceConnection.prepareStatement(query);
ResultSet resultSet = preparedStatement.executeQuery();
String createTableQuery = "CREATE TABLE destination_table (column1 datatype, column2 datatype, column3 datatype)";
Statement createTableStatement = targetConnection.createStatement();
createTableStatement.execute(createTableQuery);
String insertQuery = "INSERT INTO destination_table (column1, column2, column3,...) VALUES (?, ?, ?...) " +
" ON DUPLICATE KEY UPDATE column1 = values(column1),column2 = values(column2) ...";
PreparedStatement insertStatement = targetConnection.prepareStatement(insertQuery);
while (resultSet.next()) {
insertStatement.setString(1, resultSet.getString("column1"));
insertStatement.setString(2, resultSet.getString("column2"));
insertStatement.setString(3, resultSet.getString("column3"));
insertStatement.executeUpdate();
}
System.out.println("Backup completed successfully.");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
java备份数据库,指定字段(存在修改,不存在新增)
于 2023-09-05 14:13:17 首次发布
本文详细展示了使用Java的JDBC进行数据库源到目标的迁移过程,包括连接、查询、创建表、插入数据以及处理可能的重复键冲突。
&spm=1001.2101.3001.5002&articleId=132690928&d=1&t=3&u=6dcf1ee9a4c9428f9a082ac285cbd99f)
1万+

被折叠的 条评论
为什么被折叠?



