1. 程式人生 > >JDBCTemplate的使用詳解

JDBCTemplate的使用詳解



        對於一個菜鳥級開發,總感覺接觸Hibernate,MyBatis...等框架自己封裝的一些方法用起來不是很方便,當然可能是我接觸不深,當然框架有自己的好處,但是有一點可以肯定,sql語句中涉及到最多的還是查詢,一般的簡單查詢框架完全可以搞定,但是遇到複雜條件的查詢,對於對框架接觸不深的小白實現起來就有點難度,這個時候如果有人告訴你沒有一句sql解決不了的問題,如果有,那就兩句。SQL對很多人來說就不會有太大難度,而且簡單方便夠靈活,媽媽再也不用擔心我的框架學不會了。下來進入正題。


使用jdbcTemplate有兩種方式,之前看到有人說有三種方式(個人感覺前兩種方式無非就是注入方式的不同,具體下面會介紹,畢竟實現都是一樣的,能用@AutoWrite搞定的事情,誰會多此一舉寫個get/set方式)
要用jdbcTemplate,那就必須得先配置,此條件都為下面兩種使用jdbcTemplat的前提條件,這裡列出,下面就全部省略了。
      下面紅色的地方可以變更,可以直接注入JdbcTemplate或者注入需要的業務層然後直接引用JdbcTemplate
<bean id="jdbcTemplate
" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 使用的資料來源配置 -->
<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource"destroy-method="close">
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="defaultAutoCommit" value="false" />
</bean>

然後下面介紹下具體兩種使用方式,上面說到有人部落格說使用jsdbcTemplate有三種方式,其實前兩種方式可以合併為我所說的第一種方式,下面具體詳解:

第一種方式:

配置檔案如上,不用改變任何東西,然後直接將JdbcTemplate注入到業務層直接使用,如下:

@AutoWired
private JdbcTemplate jdbcTemplte;

然後就可以使用了。
別人部落格中提到的第二種方式和以上差不多,只是配置檔案上有些差別:
<bean id="jdbcTemplate" class="com.gsww.jup.service.express.impl.IndentServiceImpl
">
<property name="dataSource" ref="dataSource" />
 </bean> 
 <bean id="indentServiceImpl" class="com.gsww.jup.service.express.impl.IndentServiceImpl">
<property name="dataSource" ref="dataSource"/>
</bean>

 只是以上紅色的部分有變化(第一個ID隨便寫沒關係,關鍵在第二個class,之前我寫的直接引入的
org.springframework.jdbc.core.JdbcTemplate,而這裡沒有經過org.springframework.jdbc.core.JdbcTemplate,而是
直接將資料來源注入到自己的業務類裡面),後續的使用步驟和上面一樣,直接在業務類裡面直接引用JdbcTemplate,
即直接注入:
@Autowired
private JdbcTemplate jdbcTemplate;

然後就可以引用了,按照我的理解,只要注入了資料來源,就可以直接注入引用了。

第二種方式:

直接繼承JdbcDaoSupport,其內部有個JdbcTemplate,只要將資料來源通關過配置檔案注入到該類就可以直接使用,直接用this.就可以直接引用到。

public class UserDaoImpl extends JdbcDaoSupport{    
   @Override  
   public void save(User user) {  
        String sql = null;  
        this.getJdbcTemplate().update(sql);  
   }  
        //其它方法省略……  
}  

 其相關配置檔案如:
<bean id="userDao" class="com.hxzy.account.jdbcTemplate.UserDaoImpl">  
         <property name="dataSource" ref="dataSource"/>  
</bean>
 
 比較推薦使用第二種,他的實現方式為
Spring提供了 org.springframework.jdbc.core.support.JdbcDaoSupport 類,這個類中定義了JdbcTemplate 屬性,也定義了DataSourcre屬性,當專案啟動設定DataSource屬性的時候,就會建立JdbcTemplate例項,所以我們只需繼承。
JdbcDaoSupport便可以通過this.關鍵字調取到執行方法。
個人感覺就複雜點的查詢會用到JdbcTemplate查詢,增刪改一般框架基礎方法就可以搞定。
看完了沒,記得點贊啊。。。