#1.依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
``
2.配置數據源
package com.example.jdbctem.jdbc;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.jdbc.core.JdbcTemplate;
import javax.sql.DataSource;
@Configuration
public class DataSourceConfig {
@Bean(name = "primaryDataSource")
@ConfigurationProperties("spring.datasource.primary")
public DataSource primaryDataSource() {
return DataSourceBuilder.create().build();
}
@Primary
@Bean(name = "secondaryDataSource")
@ConfigurationProperties("spring.datasource.secondary")
public DataSource secondaryDataSource() {
return DataSourceBuilder.create().build();
}
/**
* @param dataSource
* @return
* @Bean明確地指示了一種方法,什麼方法呢——產生一個bean的方法, 並且交給Spring容器管理;從這我們就明白了爲啥@Bean是放在方法的註釋上了,
* 因爲它很明確地告訴被註釋的方法,你給我產生一個Bean,然後交給Spring容器,
* 實現依賴注入
*/
@Bean(name = "primaryJdbcTemplate")
public JdbcTemplate primaryTemplate(@Qualifier("primaryDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
@Bean(name = "secondaryJdbcTemplate")
public JdbcTemplate secondaryTemplate(@Qualifier("secondaryDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
}
3.
package com.example.jdbctem.jdbc;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public class UserImp2 implements UserDao {
@Autowired
@Qualifier("secondaryJdbcTemplate")
private JdbcTemplate jdbcTemplate;
@Override
public List<UserBean> getAll() {
return jdbcTemplate.query("select * from test", (resultSet, i) -> {
UserBean userBean = new UserBean();
userBean.setId(resultSet.getInt("id"));
userBean.setName(resultSet.getString("name"));
return userBean;
});
}
}
package com.example.jdbctem.jdbc;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public class UserImp implements UserDao {
@Autowired
@Qualifier("primaryJdbcTemplate")
private JdbcTemplate jdbcTemplate;
@Override
public List<UserBean> getAll() {
return jdbcTemplate.query("select * from db", (resultSet, i) -> {
UserBean userBean = new UserBean();
userBean.setId(resultSet.getInt("id"));
userBean.setName(resultSet.getString("name"));
return userBean;
});
}
}