什么是jdbc:
- jdbc全稱java database connectivity
- jdbc可以通過載入不同的數據庫的“驅動程序”而與不同的數據庫進行連接。
jdbc的優點:
- 使用的驅動不同,即可連接不同的數據庫。
- 使用同一套操作來操作不同的數據庫
- 如果每一個數據庫java都制訂一套連接方式,那么當不同的數據庫更新的時候,java也需要更新自己的代碼,而使用jdbc,使用同一套代碼來操作,使用不同的驅動程序(驅動程序由數據庫廠商提供)來連接,這使得可以連接不同的數據庫。
spring對數據訪問提供的支持
- 提供于平臺無關的的持久化異常體系
- 提供模板簡化數據持久化開發
提供于平臺無關的的持久化異常體系
spring對jdbc的sqlexception進行封裝,你不需要做什么;只需要將springjdbc的jar包導入即可,這樣你就可以在spring所支持的數據訪問模板中享受到這些異常^~~^
1
2
3
4
5
|
<dependency> <groupid>org.springframework</groupid> <artifactid>spring-jdbc</artifactid> <version> 4.1 . 1 .release</version> </dependency> |
提供模板簡化數據持久化開發
針對不同的持久化平臺,spring提供了多個可選則使用的模板,常用的模板類如下
模板類 | 用途 |
---|---|
jdbc.core.jdbctemplate | jdbc的鏈接 |
orm.jdo.jdotemplate | java數據對象實現 |
orm.jpa.jpatemplate | java持久化api的實體管理器 |
orm.ibatis.sqlmapclienttemplate | ibatis sqlmap客戶端 |
orm.hibernate3.hibernatetemplate | hibernate3.x以上的session |
裝配數據源
無論你使用哪一種模板類,你都需要配置一個數據源的引用,spring提供了在spring上下文中配置數據源bean的多種方式
- 通過jdbc驅動程序定義的數據源
- 通過jndi查找數據源
- 連接池的數據源
具體詳細的數據源裝配,我會另開一篇進行解析介紹,在本篇案例中使用的是阿里巴巴的druid連接池,使用過程如下
加載依賴
1
2
3
4
5
6
|
<!-- https: //mvnrepository.com/artifact/com.alibaba/druid --> <dependency> <groupid>com.alibaba</groupid> <artifactid>druid</artifactid> <version> 1.1 . 12 </version> </dependency> |
配置數據源
1
2
3
4
5
6
7
8
9
10
|
@bean public druiddatasource datasource() { druiddatasource ds = new druiddatasource(); ds.setdriverclassname(environment.getproperty( "jdbc.driver" )); ds.seturl(environment.getproperty( "jdbc.url" )); ds.setusername(environment.getproperty( "jdbc.username" )); ds.setpassword(environment.getproperty( "jdbc.password" )); ds.setinitialsize( 5 ); return ds; } |
配置jdbc模板類
1
2
3
4
|
@bean public jdbctemplate jdbctemplate(datasource datasource) { return new jdbctemplate(datasource); } |
dao層相關代碼
1
2
3
4
5
6
7
8
|
@autowired private jdbcoperations jdbcoperations; @override public user getuser(string username) { list<user> query = jdbcoperations.query(select_user_by_id, new userrowmapper(), username); return query.get( 0 ); } |
本章完整代碼地址:完整項目下載地址點擊此處
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。
原文鏈接:https://www.cnblogs.com/jimisun/p/9908082.html