Spring使用JDBC访问MySQL数据库
在Java應用程序開發中,使用JDBC訪問MySQL數據庫是Java開發者常用的技術。在Spring框架中,Spring對JDBC又進行了封裝,簡化了程序訪問數據庫的復雜度。本課主要討論在Spring框架中如何使用封裝的JDBC訪問MySQL數據庫。通過本課的學習,可以解決如下問題。
● 在Spring框架下,如何讓程序連接數據庫?
● 如何利用DAO技術從數據源讀取和寫入數據?
企業級應用開發都會涉及到對數據庫的訪問,在Java編程環境中,訪問數據庫是非常繁瑣的事情,需要編寫啟動數據庫連接、準備和執行SQL語句、處理事務和異常、關閉連接等大量數據庫操作代碼。
使用Spring框架可以簡化Java程序對數據庫的訪問,Spring提供了一套完整的數據庫訪問框架,用于簡化各種數據庫訪問技術的使用。Spring框架支持JDBC、Hibernate、Java Perssitence等數據庫訪問技術,本文主要討論JDBC數據庫訪問技術。
?
1、 配置數據源
要讓Spring能夠訪問數據庫,就要把數據庫的位置,以及訪問數據庫的賬號和密碼告訴Spring。這個過程稱為配置數據源。Spring提供了多種方式配置數據源,下面主要討論基于JDBC驅動方式配置數據源。
Spring提供的JDBC驅動提供了三類數據源的配置方式,開發者可以根據程序需要選擇不同的配置方式,配置方式及其配置說明如下表所示。
?
表1 JDBC驅動配置數據源方式
?
本課主要使用DriverManagerDataSource連接數據源,沒有使用連接池技術。后面的課程會討論數據庫連接池技術。
數據源可以在Spring配置文件中進行配置,配置代碼如下。
?
2、創建數據訪問對象(DAO)
數據訪問對象(DAO)相當于程序和數據源之間的經紀人。程序要訪問數據源,必須要通過DAO來訪問,DAO提供了程序訪問數據源必要的接口和方法,接口和方法的具體實現細節,程序并不需要了解。
DAO由數據訪問對象接口、數據訪問對象實現類、訪問對象實體類組成。其中,數據訪問對象接口定義了訪問數據必要的接口聲明;數據訪問對象實現類實現了定義的接口,并負責從數據源讀取數據,數據源可以是數據庫、XML文件或者是其它存儲對象;訪問對象實體類定義了要訪問的對象結構,假設要訪問的數據對象是數據庫,則該實體類定義了數據庫中一個表的結構。下面以訪問數據庫為例,分別討論數據訪問對象接口、數據訪問對象實現類和訪問對象實體類。
(1)數據訪問對象接口
訪問數據庫的操作一般是增、刪、改、查。增是在指定的數據庫表中插入一條記錄;刪是在指定的數據庫表中刪除一條記錄;改是在指定的數據庫表中修改記錄;查是按指定條件查詢數據庫表記錄。數據訪問對象接口就是定義操作數據庫表的增刪改查接口。下面給出課程案例mooc數據庫course表的DAO接口。
課程案例mooc數據庫ER圖如下所示。
?
圖 1 mooc數據庫ER圖
?
?
mooc數據庫course表結構如下。
?
表 2 課程表
?
course表DAO接口代碼如下。
?
(2)數據訪問對象實現類
數據訪問對象實現類實現DAO接口,并負責從mooc數據庫中讀取數據。在Spring中,可以采用JDBC、Hibernate、MyBits、JPA等技術在DAO層實現對數據庫的訪問。本科采用JDBC技術,JdbcTemplate類是Spring對JDBC的封裝,讓JDBC更加容易使用,JdbcTemplate 類可以執行 標準的SQL 語句和過程調用。數據訪問對象實現類代碼如下。
?
CourseJDBCTemplate類實現了CourseDao接口,并實現了接口的所有方法。CourseJDBCTemplate類內置了DataSource和JdbcTemplate類。DataSource為數據源類,存儲了數據源的連接地址、登錄數據源的賬號密碼等數據。JdbcTemplate類是Spring對JDBC的封裝,JdbcTemplate 類可以執行 標準的SQL 語句和過程調用,創建JdbcTemplate類時傳入的參數為DataSource。
?
代碼中用到了JdbcTemplate類的queryForObject方法,該方法從數據庫中查詢符合條件的記錄。queryForObject方法的第三個參數是RowMapper泛型類型,通過繼承RowMapper泛型,可以將查詢返回的ResultSet數據集映射到訪問對象實體類。
?
(3)訪問對象實體類
訪問對象實體類定義了要訪問的對象結構,假設要訪問的數據對象是數據庫,則該實體類定義了數據庫中一個表的結構。mooc數據庫course表的實體類代碼如下。
?
?
3、運行JDBC的測試程序
前面主要討論了配置數據源和創建數據訪問對象(DAO)相關內容,解決了程序如何訪問數據庫以及數據庫表的讀寫問題。下面給出一個程序實例,利用前面配置的數據源和已創建的DAO對象,實現對mooc數據庫course表的課程插入和查詢操作。
mooc數據庫非常簡單,可以根據課程給出的ER圖和course二維表,手動創建mooc數據庫和course表。mooc數據庫創建完成后,需要修改Spring配置文件中配置的數據源,主要是修改數據庫的連接地址、登錄賬戶和密碼。
運行程序前需要確定項目已經引入了Spring框架關于JDBC功能的jar包。下面列出的是spring 5.0版本相關JDBC的jar包。
● mysql-connector-java-5.1.7-bin
● spring-jdbc-5.0.8.RELEASE
測試程序代碼如下。
?
程序運行結果如下圖示所示。
?
?
?
課程小結
(1)要讓Spring能夠訪問數據庫,就要把數據庫的位置,以及訪問數據庫的賬號和密碼告訴Spring,這個過程稱為配置數據源。數據源可以在Spring配置文件中進行配置,也可以寫成Bean的方式,由DAO對象讀取。
(2)數據訪問對象(DAO)相當于程序和數據源之間的經紀人。程序要訪問數據源,必須要通過DAO來訪問,DAO提供了程序訪問數據源必要的接口和方法,接口和方法的具體實現細節,程序并不需要了解。DAO將底層數據操作細節和上層應用進行了有效隔離,在程序開發過程中,DAO和上層應用都可以獨立編寫代碼,然后再進行集成就可以了,利用DAO層也可以輕松實現不同數據庫的訪問。
總結
以上是生活随笔為你收集整理的Spring使用JDBC访问MySQL数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 二进制高低位交换の琐事(洛谷P1100题
- 下一篇: linux cmake编译源码,linu