天天看点

springboot如何连接多个数据源并实现增,删,改,查

作者:摸鱼女程序员那些事儿

Spring Boot可以通过配置多个数据源来实现连接多个数据库,并且实现数据的增、删、改、查等基本操作。下面是一个简单的例子,演示如何在Spring Boot中同时连接两个MySQL数据库,并实现基本操作:

springboot如何连接多个数据源并实现增,删,改,查
  1. 在application.properties文件中添加配置:

# 数据源 1

spring.datasource.url=jdbc:mysql://localhost:3306/db1

spring.datasource.username=root

spring.datasource.password=123456

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

# 数据源 2

datasource2.url=jdbc:mysql://localhost:3306/db2

datasource2.username=root

datasource2.password=123456

datasource2.driver-class-name=com.mysql.jdbc.Driver

注意:这里使用了默认的HikariCP连接池,如果需要使用其他连接池,需要引入对应的库并进行配置。

  1. 在代码中定义两个数据源:

@Configuration

public class DataSourceConfig {

@Bean

@ConfigurationProperties(prefix = "spring.datasource")

public DataSource dataSource() {

return DataSourceBuilder.create().build();

}

@Bean(name = "datasource2")

@ConfigurationProperties(prefix = "datasource2")

public DataSource dataSource2() {

return DataSourceBuilder.create().build();

}

}

  1. 定义两个JdbcTemplate对象用于执行SQL语句:

@Configuration public class JdbcConfig {

@Autowired @Qualifier("dataSource")

private DataSource dataSource;

@Autowired @Qualifier("dataSource2")

private DataSource dataSource2;

@Bean(name = "jdbcTemplate1")

public JdbcTemplate jdbcTemplate1() {

return new JdbcTemplate(dataSource);

}

@Bean(name = "jdbcTemplate2")

public JdbcTemplate jdbcTemplate2()

{

return new JdbcTemplate(dataSource2);

}

}

4、在代码中使用JdbcTemplate对象执行SQL语句:

@Service public class UserService {

@Autowired

@Qualifier("jdbcTemplate1")

private JdbcTemplate jdbcTemplate1;

@Autowired @Qualifier("jdbcTemplate2")

private JdbcTemplate jdbcTemplate2; /

/ 查询用户信息

public List<User> getUserList() {

String sql = "SELECT * FROM user";

List<User> userList = jdbcTemplate1.query(sql, new BeanPropertyRowMapper<>(User.class));

return userList;

}

// 添加用户信息

public int addUser(User user) {

String sql = "INSERT INTO user (name, age) VALUES (?, ?)";

int result = jdbcTemplate2.update(sql, user.getName(), user.getAge());

return result;

}

// 修改用户信息

public int updateUser(User user) {

String sql = "UPDATE user SET name=?, age=? WHERE id=?";

int result = jdbcTemplate2.update(sql, user.getName(), user.getAge(), user.getId());

return result; }

// 删除用户信息

public int deleteUser(int id) {

String sql = "DELETE FROM user WHERE id=?";

int result = jdbcTemplate1.update(sql, id);

return result;

}

}

以上就是一个简单的在Spring Boot中连接多个MySQL数据库,并实现数据的增、删、改、查等基本操作的例子。如果需要连接其他类型的数据库,只需更改相关的驱动和连接字符串即可。

继续阅读