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();
}