Spring Boot中JdbcTemplate
阿新 • • 發佈:2018-11-11
Spring Boot中JdbcTemplate
1. pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</ artifactId>
</dependency>
2. application.properties
#資料來源配置
spring.datasource.url=jdbc:mysql://localhost:3306/jpa_test?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
3. JdbcTemplate
JdbcTemplate主要提供以下五類方法:
- execute方法:可以用於執行任何SQL語句,一般用於執行DDL語句;
- update方法及batchUpdate方法:update方法用於執行新增、修改、刪除等語句;batchUpdate方法用於執行批處理相關語句;
- query方法及queryForXXX方法:用於執行查詢相關語句;
- call方法:用於執行儲存過程、函式相關語句。
@Resource
private JdbcTemplate jdbcTemplate;
@Test
public void testJDBC(){
jdbcTemplate. update("INSERT INTO USER VALUES(?, ?, ?, ?)", 2, 11, new Date(), "xuyang");
System.out.println(jdbcTemplate.queryForList("SELECT * FROM USER ").size());;
}
JdbcTemplate多資料
1.application.properties
#JdbcTemplate多資料來源
#主資料來源
spring.datasource.master.jdbc-url=jdbc:mysql://localhost:3306/ncp?useUnicode=true&characterEncoding=utf8
spring.datasource.master.username=root
spring.datasource.master.password=root
spring.datasource.master.driver-class-name=com.mysql.jdbc.Driver
#從資料來源
spring.datasource.cluster.jdbc-url=jdbc:mysql://localhost:3306/wltx?useUnicode=true&characterEncoding=utf8
spring.datasource.cluster.username=root
spring.datasource.cluster.password=root
spring.datasource.cluster.driver-class-name=com.mysql.jdbc.Driver
2.config
@Configuration
public class DataSourceConfig {
@Bean("masterDataSource")
@Primary
@Qualifier("masterDataSource")
@ConfigurationProperties(prefix = "spring.datasource.master")
public DataSource masterDataSource(){
return DataSourceBuilder.create().build();
}
@Bean("masterJdbcTemplate")
public JdbcTemplate masterJdbcTemplate(@Qualifier("masterDataSource") DataSource dataSource){
return new JdbcTemplate(dataSource);
}
@Bean("clusterDataSource")
@Qualifier("clusterDataSource")
@ConfigurationProperties(prefix = "spring.datasource.cluster")
public DataSource clusterDataSource(){
return DataSourceBuilder.create().build();
}
@Bean("clusterJdbcTemplate")
public JdbcTemplate clusterJdbcTemplate(@Qualifier("clusterDataSource") DataSource dataSource){
return new JdbcTemplate(dataSource);
}
}
注意在application.properties中配置資料來源url時使用的是jdbc-url, 如果使用的url則需要配置DataSourceProperties,並且使用該配置初始化資料來源
@Bean("masterDataSourceProperties")
@Primary
@Qualifier("masterDataSourceProperties")
@ConfigurationProperties(prefix = "spring.datasource.master")
public DataSourceProperties masterDataSourceProperties(){
return new DataSourceProperties();
}
@Bean("masterDataSource")
@Primary
@Qualifier("masterDataSource")
@ConfigurationProperties(prefix = "spring.datasource.master")
public DataSource masterDataSource(@Qualifier("masterDataSourceProperties") DataSourceProperties properties){
return properties.initializeDataSourceBuilder().build();
}