目录
代码地址:(spring-boot github地址)
1、springboot整合JDBC
2、springboot整合mybatis
3、springboot整合springdata jpa
1、springboot整合jdbc
在application.properties中配置数据库链接信息
#数据源1 spring.datasource.one.type = com.alibaba.druid.pool.DruidDataSource spring.datasource.one.username = root spring.datasource.one.password = root spring.datasource.one.url = jdbc:mysql://localhost/chapter01?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC #数据源2 spring.datasource.two.type = com.alibaba.druid.pool.DruidDataSource spring.datasource.two.username = root spring.datasource.two.password = root spring.datasource.two.url = jdbc:mysql://localhost/chapter02?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
配置Datasource
@Configuration public class DataSourceConfig { @Bean("dataSourceOne") @ConfigurationProperties("spring.datasource.one") public DataSource dataSourceOne() { return DruidDataSourceBuilder.create().build(); } @Bean("dataSourceTwo") @ConfigurationProperties("spring.datasource.two") public DataSource dataSourceTwo() { return DruidDataSourceBuilder.create().build(); } }
配置JdbcTemplate
@Configuration public class JdbcConfiguration { @Bean("jdbcTemplateOne") public JdbcTemplate jdbcTemplateOne(@Qualifier("dataSourceOne") DataSource dataSource) { return new JdbcTemplate(dataSource); } @Bean("jdbcTemplateTwo") public JdbcTemplate jdbcTemplateTwo(@Qualifier("dataSourceTwo") DataSource dataSource) { return new JdbcTemplate(dataSource); } }
创建实体
public class User { private String id; private String name; private String age; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } }
创建dao层
@Repository public class UserDao { @Resource(name = "jdbcTemplateOne") private JdbcTemplate jdbcTemplateOne; @Resource(name = "jdbcTemplateTwo") private JdbcTemplate jdbcTemplateTwo; public void save(User user) { jdbcTemplateOne.update("insert into user (name,age) values (?,?)",user.getName(),user.getAge()); jdbcTemplateTwo.update("insert into user (name,age) values (?,?)",user.getName(),user.getAge()); } public void getList() { List<User> user1 = jdbcTemplateOne.query("select * from user",new BeanPropertyRowMapper<>(User.class)); List<User> user2 = jdbcTemplateTwo.query("select * from user",new BeanPropertyRowMapper<>(User.class)); System.out.println("user1:" + user1); System.out.println("user2:" + user2); } }
创建 controller
@RestController public class UserController { @Autowired private UserDao userDao; @GetMapping("/save") public void save() { User user = new User(); user.setName("张三"); user.setAge("20"); userDao.save(user); user = new User(); user.setName("李四"); user.setAge("20"); userDao.save(user); } @GetMapping("/get") public void get() { userDao.getList(); } }
以上就是jdbc多数据源配置。mybatis、springdata jpa多数据源配置与其类似。
我的github地址上都有单独的工程讲解,可以去参考:https://github.com/FadeHub/spring-boot-learn