Spring-繼承JdbcDaoSupport類後簡化配置文件內容
阿新 • • 發佈:2017-06-30
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類後簡化配置文件內容