第四章:Spring專案對JDBC的支援
歡迎檢視Java開發之上帝之眼系列教程,如果您正在為Java後端龐大的體系所困擾,如果您正在為各種繁出不窮的技術和各種框架所迷茫,那麼本系列文章將帶您窺探Java龐大的體系。本系列教程希望您能站在上帝的角度去觀察(瞭解)Java體系。使Java的各種後端技術在你心中模組化;讓你在工作中能將Java各個技術瞭然於心;能夠即插即用。本章我們來一起了解Spring對JDBC的支援和基本使用。
Spring對資料訪問提供的支援
- 提供於平臺無關的的持久化異常體系
- 提供模板簡化資料持久化開發
提供於平臺無關的的持久化異常體系
Spring對JDBC的SQLException進行封裝,你不需要做什麼;只需要將SpringJDBC的Jar包匯入即可,這樣你就可以在Spring所支援的資料訪問模板中享受到這些異常^~~^
<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連線池,使用過程如下
載入依賴
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.12</version>
</dependency>
配置資料來源
@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模板類
@Bean
public JdbcTemplate jdbcTemplate(DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
Dao層相關程式碼
@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);
}
本章完整程式碼地址:完整專案下載地址點選此處
相關文章
- Spring 對JDBC的支援SpringJDBC
- Spring的JDBC支援SpringJDBC
- Spring 對Ajax的支援Spring
- Spring 對檔案上傳下載的支援(Spring boot實現)Spring Boot
- Spring Data JDBC: 對映無ID列的表SpringJDBC
- Spring 對Apache Kafka的支援與整合SpringApacheKafka
- spring中對hibernate的支援(轉)Spring
- JDBC 4.2 Specifications 中文翻譯 -- 第四章 JDBC API 概覽JDBCAPI
- 開源之夏專案分享:圖資料庫 Nebula Graph 支援 JDBC 協議資料庫JDBC協議
- Testcontainer JDBC 支援AIJDBC
- 【Spring】jdbcSpringJDBC
- spring-mybatis專案搭建(支援多資料來源)SpringMyBatis
- 讓Web專案中Velocity的#parse支援相對路徑Web
- Spring JDBC框架SpringJDBC框架
- Spring框架5.1將提供對Java 11的支援Spring框架Java
- Spring系列之JDBC對不同資料庫異常如何抽象的?SpringJDBC資料庫抽象
- Spring Boot中如何使用JDBC讀取和寫入資料,JDBC和JPA的對比,JdbcTemplate和SimpleJdbcInsert的用法對比Spring BootJDBC
- PMBOK筆記-第四章 專案綜合管理筆記
- Spring Data JDBC如何對DDD聚合根進行部分更新? - spring.ioSpringJDBC
- Linux配置支援C/C++專案的eclipse和支援java專案的eclipse薦LinuxC++EclipseJava
- Spring4:JDBCSpringJDBC
- spring-boot-admin對spring-boot專案進行監控Springboot
- Spring Boot 2.4 對多環境配置的支援更改Spring Boot
- 如何把Spring Boot 專案變成一個XML配置的Spring專案Spring BootXML
- Spring 主要專案Spring
- Spring Session JDBC的使用 - javadevjournalSpringSessionJDBCJavadev
- spring-jdbc 的實現原理SpringJDBC
- spring 載入不了jdbc.properties檔案的資料問題SpringJDBC
- 為老的vueCli專案新增vite支援VueVite
- 在spring boot專案(maven)中引入其他 spring boot專案Spring BootMaven
- MyBatis第四章:專案案例mybatis主要配置解析MyBatis
- 結對專案
- 普通專案組成員對專案的作用(轉)
- Spring Data JDBC介紹SpringJDBC
- 關於Spring的JDBC連線mysql(與傳統jdbc比較)SpringJDBCMySql
- 對微型專案管理的思考專案管理
- 對以前專案的重構
- Spring Boot專案建立Spring Boot