1. 程式人生 > >Spring-繼承JdbcDaoSupport類後簡化配置文件內容

Spring-繼承JdbcDaoSupport類後簡化配置文件內容

col per demo1 ide rgs mysql 如果 span pub

正常情況下,我們在實現類中想要暈用模板類需要在配置文件中註入連接池,再將連接池註入給模板類,然後在實現類中得到。

 1 <!-- 配置C3P0連接池 -->
 2     <bean id = "dataSource" class = "com.mchange.v2.c3p0.ComboPooledDataSource">    
 3         <property name="driverClass" value = "com.mysql.jdbc.Driver"/>
 4         <property name="jdbcUrl" value 
= "jdbc:mysql:///spring_day03"/> 5 <property name="user" value = "root"/> 6 <property name="password" value = "123456"/> 7 </bean> 8 9 <!-- 配置JDBC模板類 --> 10 <bean id = "jdbcTemplate" class = "org.springframework.jdbc.core.JdbcTemplate"> 11
<property name="dataSource" ref = "dataSource"></property> 12 </bean> 13 14 <!--配置持久層--> 15 <bean id = "accountDao" class = "com.itheima.demo1.AccountDaoImpl" > 16 <property name="jdbcTemplate" ref = "jdbcTemplate"></property> 17
</bean>
1 public void dao{
2 
3         private JdbcTemplate jdbcTemplate;
4         public void setJdbcTemplate(JdbcTemplate jdbcTemplate){
5                       this.jdbcTemplate = jdbcTemplate;
6         }
7     
8 }       

但是,有一個JdbcDaoSupport類,繼承了它之後就可以不用配置模板類,具體看源碼

public final void setDataSource(DataSource dataSource){
           if(this.jdbcTemplate == null || dataSource != this.jdbcTemplate.getDataSource())
           this.jdbcTemplate = createJdbcTemplate(dataSource);
          initTemplateConfig();
}

源碼中說的很清楚了,如果你沒有提供模板類,它會根據連接池(dataSource)來新建一個模板類,這樣,我們在配置文件中只需要配置連接池就好了,不用再配置模板類,模板類的工作交給它來做。

<!-- 配置C3P0連接池 -->
    <bean id = "dataSource" class = "com.mchange.v2.c3p0.ComboPooledDataSource">    
        <property name="driverClass" value = "com.mysql.jdbc.Driver"/>
        <property name="jdbcUrl" value = "jdbc:mysql:///spring_day03"/>
        <property name="user" value = "root"/>
        <property name="password" value = "123456"/>
    </bean>

    <bean id = "accountDao" class = "com.itheima.demo1.AccountDaoImpl" >
        <property name = "dataSource" ref = "dataSource"/>        
    </bean>

那麽我們怎麽用模板類呢,不用擔心,父類JdbcDaoSuppor中有相關的獲取方法,可以直接拿來用

1 //扣錢
2     @Override
3     public void outMoney(String out, double money) {
4         this.getJdbcTemplate().update(sql, args);
5         
6     }

參考 黑馬JAVAEE教學視頻

Spring-繼承JdbcDaoSupport類後簡化配置文件內容