mysql 数据迁移-将一个表中的数据插入到另一个表中(相同/不相同数据库)

在实际开发中,常常涉及旧数据的迁移。如下为数据迁移sql

INSERT INTO ls.(字段,字段) SELECT

FROM
   gs.表名称;

示例

Insert into Table2(field1,field2,...) 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的Spring JDBC示例,演示如何从一个数据库读取数据并将其插入到另一个数据库: 首先,您需要在pom.xml文件添加以下依赖项: ```xml <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.2.9.RELEASE</version> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.4.200</version> </dependency> ``` 其,spring-jdbc依赖项包含Spring JDBC框架,而h2依赖项是一个嵌入式数据库,我们将在此示例使用它。 接下来,您需要创建两个数据源bean,分别指向源数据库和目标数据库。假设源数据库MySQL,目标数据库是H2,您可以按照以下方式创建这些bean: ```java @Configuration public class AppConfig { @Bean public DataSource mysqlDataSource() { DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/source_db"); dataSource.setUsername("root"); dataSource.setPassword("password"); return dataSource; } @Bean public DataSource h2DataSource() { return new EmbeddedDatabaseBuilder() .setType(EmbeddedDatabaseType.H2) .addScript("classpath:schema.sql") .build(); } } ``` 其mysqlDataSource bean使用Spring的DriverManagerDataSource类配置一个JDBC数据源,该数据源连接到名为source_db的MySQL数据库。同样,h2DataSource bean使用嵌入式H2数据库创建一个数据源,并在创建数据库时运行一个SQL脚本。 接下来,您需要编写一个JdbcTemplate bean,用于执行SQL查询和更新操作。JdbcTemplate类是Spring JDBC框架的核心类之一,它为您提供了简单的API来执行SQL。 ```java @Configuration public class AppConfig { // 省略mysqlDataSource和h2DataSource的配置 @Bean public JdbcTemplate jdbcTemplate() { return new JdbcTemplate(mysqlDataSource()); } } ``` 现在,您可以编写一个简单的程序来从MySQL数据库读取数据并将其插入到H2数据库。以下是一个示例程序: ```java @Component public class DataMigrator { private final JdbcTemplate jdbcTemplate; private final DataSource h2DataSource; @Autowired public DataMigrator(JdbcTemplate jdbcTemplate, DataSource h2DataSource) { this.jdbcTemplate = jdbcTemplate; this.h2DataSource = h2DataSource; } public void migrateData() { List<Map<String, Object>> rows = jdbcTemplate.queryForList("SELECT * FROM source_table"); JdbcTemplate h2JdbcTemplate = new JdbcTemplate(h2DataSource); rows.forEach(row -> { h2JdbcTemplate.update("INSERT INTO target_table (id, name) VALUES (?, ?)", row.get("id"), row.get("name")); }); } } ``` 其,DataMigrator类使用@Autowired注释注入JdbcTemplate和H2 DataSource bean。然后,它使用queryForList方法从源检索所有行,并使用forEach循环将它们插入到目标。 最后,您可以在Spring应用程序的主类调用DataMigrator类的migrateData方法来执行数据迁移。 这是一个非常基本的示例,您可以根据需要进行修改和扩展。例如,您可以使用Spring的事务管理API来确保数据迁移是原子操作,并在迁移过程处理异常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值