如何使用springboot同时连接两个不同的数据源操纵数据库

     创建一个springboot项目,在pom.xml文件中导入一些基本的依赖并导入需要连接的两个数据库postgresql,和sqlserver的依赖。在application-dev.properties配置文件中配置两个数据库的连接信息。

       

    

    使用@Configuration注解创建一个数据源配置类,在此类上使用@PropertiesSource注解寻找这个数据源配置类关联的数据库连接信息的配置文件的地址(此配置文件可以放在项目外边,便于修改配置文件的连接信息)。在数据源配置类中使用@Bean注解创建两个数据源对象,并使用@ConfigurationProperties注解指定数据源对象关联的数据库连接信息。

    

    

  使用@Configuration注解创建一个pgSqlSessionFactory配置类,使用@MapperScan注解指定扫描mapper的地址,并使用@Autowired注解注入pgSql数据源对象DateSource,使用@Bean注解创建一个slqSessionFactory对象,并设置注入的DateSource属性,使用@Bean注解创建一个sqlSessionFactoryTemplate对象,使用构造方法设置sqlSessionfactory值。

    

    使用@Configuration注解创建一个sqlServerSessionFactory配置类,使用@MapperScan注解指定扫描mapper的地址,并使用@Autowired注解注入sqlServer数据源对象DateSource,使用@Bean注解创建一个slqSessionFactory对象,并设置注入的DateSource属性,使用@Bean注解创建一个sqlSessionFactoryTemplate对象,使用构造方法设置sqlSessionfactory对象值。

        

    通过两个配置类对象上面的@MapperScan注解中的地址创建两个包,一个包操作qgsql数据库,另一个操作sqlServer数据库,完成同时对两个数据库的操作

Spring Boot可以使用数据源连接多个数据库,同时可以使用JdbcTemplate来进行数据访问。 首先,在application.properties文件中配置两个数据源连接信息: ``` # 数据库1 spring.datasource.url=jdbc:mysql://localhost:3306/db1 spring.datasource.username=user1 spring.datasource.password=password1 # 数据库2 spring.datasource.db2.url=jdbc:mysql://localhost:3306/db2 spring.datasource.db2.username=user2 spring.datasource.db2.password=password2 ``` 然后,在代码中定义两个数据源的JdbcTemplate: ``` @Configuration public class DataSourceConfig { @Primary @Bean(name = "db1JdbcTemplate") public JdbcTemplate db1JdbcTemplate(@Qualifier("db1DataSource") DataSource dataSource) { return new JdbcTemplate(dataSource); } @Bean(name = "db2JdbcTemplate") public JdbcTemplate db2JdbcTemplate(@Qualifier("db2DataSource") DataSource dataSource) { return new JdbcTemplate(dataSource); } @Primary @Bean(name = "db1DataSource") @ConfigurationProperties(prefix="spring.datasource") public DataSource db1DataSource() { return DataSourceBuilder.create().build(); } @Bean(name = "db2DataSource") @ConfigurationProperties(prefix="spring.datasource.db2") public DataSource db2DataSource() { return DataSourceBuilder.create().build(); } } ``` 最后,在代码中使用JdbcTemplate进行数据访问: ``` @Autowired @Qualifier("db1JdbcTemplate") private JdbcTemplate db1JdbcTemplate; @Autowired @Qualifier("db2JdbcTemplate") private JdbcTemplate db2JdbcTemplate; // 使用db1JdbcTemplate访问数据库1 List<Map<String, Object>> result = db1JdbcTemplate.queryForList("SELECT * FROM table1"); // 使用db2JdbcTemplate访问数据库2 List<Map<String, Object>> result2 = db2JdbcTemplate.queryForList("SELECT * FROM table2"); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值