1. 程式人生 > >Spring Boot中JdbcTemplate

Spring Boot中JdbcTemplate

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

轉載
Spring Boot入門教程(十六): JdbcTemplate