翟高粵
摘 要:Spring是當今流行的Java Web開發框架,它能解決大部分企業應用開發的復雜性問題。對于Java開發人員來說,掌握Spring框架數據庫開發的基本方法,是進行編寫應用軟件的必備技能之一。本文主要介紹Spring框架數據庫開發的基本方法及應用,并通過一個實例說明Spring框架數據庫編程的基本使用方法,從而感受Spring數據庫編程的便利。
關鍵詞:Spring框架;MySQL;JDBC;數據庫編程
Spring 是在2003年興起的一個輕量級的Java應用開發框架,它是為了解決企業應用開發的復雜性而創建的。Spring框架降低了Java EE API的使用難度,特別是數據庫編程方面,Spring集成了JDBC,JDBC是Spring數據訪問/集成中的重要模塊,它負責數據庫資源管理和錯誤處理,大大簡化了開發人員對數據庫的操作,使得開發人員可以從煩瑣的數據庫操作中解脫出來,從而將更多的精力投入到編寫業務邏輯中。
1.相關理論
1.1 SpringJDBC
Spring JDBC是對傳統JDBC訪問的簡單封裝,使用Spring JDBC之后,可以省去一部分以前需要開發人員編寫的訪問數據的底層操作,比如注冊驅動、獲得連接、執行查詢等等。Spring JDBC相當于一個簡單封裝的持久層框架,原始功能比較簡單,使用起來也比較簡單,如果開發一些小型項目,是可以直接使用的,如果是一些大型項目,由于它并不是真正的orm框架,因此需要自己封裝一些工具,如果有能力封裝的話,那么Spring JDBC用起來是非常舒服的,性能也很強,不比mybatis差。
1.2 MySQL
MySQL是一個關系型數據庫管理系統,由瑞典MySQL AB 公司開發,屬于 Oracle 旗下產品。MySQL 是最流行的關系型數據庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關系數據庫管理系統) 應用軟件之一。
MySQL是一種關系型數據庫管理系統,關系數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度并提高了靈活性。
MySQL所使用的 SQL 語言是用于訪問數據庫的最常用標準化語言。MySQL 軟件采用了雙授權政策,分為社區版和商業版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型和大型網站的開發都選擇MySQL作為網站數據庫。
MySQL和Spring JDBC進行配合使用,兼容性好,開發效率高。
2.SpringJDBC模塊詳解
2.1 Spring JdbcTemplate
針對數據庫的操作,Spring框架提供了JdbcTemplate類,該類是Spring框架數據抽象層的基礎,其他更高層次的抽象類卻是構建于JdbcTemplate類之上。也就是說JdbcTemplate類是SpringJDBC的核心類。JdbcTemplate類的繼承關系如圖1所示。
從圖1可以看出,JdbcTemplate繼承自抽象類JdbcAccessor,同時實現了JdbcOperations接口。其中JdbcTemplate類的直接父類是JdbcAccessor,該類為子類提供了一些訪問數據庫時使用的公共屬性,具體如下。
(1)DataSource屬性
其主要功能是獲取數據庫連接,具體實現時還可以引入對數據庫連接的緩沖池和分布式事務的支持,它可以作為訪問數據庫資源的標準接口。
(2)SQLExceptionTranslator屬性
其主要功能通過必要的設置或者獲取SQLExceptionTranslator中的方法,可以使JdbcException在需要處理SQLException時,委托SQLExceptionTranslator的實現類來完成相關的轉譯工作。
(3)JdbcOperations接口
該接口定義了在JdbcTemplate類中可以使用的操作集合,包括添加、修改、查詢和刪
除等操作。
2.2 Spring JDBC的配置
Spring JDBC模塊主要由4個包組成,分別是core、dataSource、object和support包。Spring對數據庫的操作都封裝在這幾個包中,所以要想使用JDBC,就需要對其進行配置。
具體含義見表1所示。
定義JdbcTemplate時,需要將dataScource注入到JdbcTemplate中,而其他需要使用JdbcTemplate的Bean,也需要將JdbcTemplate注入到該Bean中。
3.SpringJDBC編程實現
在前面講到的JdbcTemplate類中,提供了大量的更新和查詢數據庫的方法,接下來本文使用這些方法來演示如何操作數據庫。
3.1 execute()方法
execute(String sql)方法能夠完成執行SQL語句的功能。
(1)首先我們先在MySQL中創建一個名為spring的數據庫,如圖1所示。
(2)在MyEclipse中,創建一個名為firstDataBase的Web項目,將運行Spring框架所需的5個基礎JAR包以及Spring事務處理的JAR包復制到項目的lib目錄并發布到類路徑中。
(3)在src目錄下,創建配置文件applicationContext.xml,在該文件中配置id為dataSource的數據源Bean和id為jdbcTemplate的JDBC模板Bean,并將數據源注入到JDBC模板中,具體代碼如下所示。
"org.springframework.jdbc.datasource.DriverManagerDataSource"> <!--數據庫驅動 --> <!--連接數據庫的url --> <!--連接數據庫的用戶名 --> <!--連接數據庫的密碼 -->
<!-- 2配置JDBC模板 -->
class="org.springframework.jdbc.core.JdbcTemplate"> <!-- 默認必須使用數據源 -->
(4)在src目錄下,創建一個com.szjm.jdbc包,在該包中創建測試類JdbcTemplateTest。在該類的main()方法中通過Spring容器獲取在配置文件中定義的JdbcTemplate實例,然后用該實例的execute方法執行創建數據表的SQL語句,具體代碼如下。
@Test
public void mainTest() {
ApplicationContext applicationContext =
new ClassPathXmlApplicationContext("applicationContext.xml");
JdbcTemplate jdTemplate =
(JdbcTemplate) applicationContext.getBean("jdbcTemplate");
jdTemplate.execute("create table account(" +
"id int primary key auto_increment," +
"username varchar(50)," +
"balance double)");
System.out.println("創建成功”);
}
3.2 update方法
update方法可以完成插入、更新和刪除數據的操作。在JdbcTemplate類中,根據不同的參數,提供了一系列update方法,接下來本文使用這些方法來演示如何進行數據庫更新。
(1)創建實體類Account,在該類中定義id、username和balance屬性,以及其對應的getter/setter方法。
(2)創建接口AccountDao,并在接口中定義添加、更新和刪除賬戶的方法,部分代碼如下所示。
public interface AccountDao {
public int addAccount(Account account);
public int updateAccount(Account account);
public int deleteAccount(int id);
public Account findAccountById(int id);
public List
}
(3)創建AccountDao接口的實現類AccountDaoImpl,并在類中實現添加、更新和刪除賬戶的方法。
public class AccountDaoImpl implements AccountDao {
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public int addAccount(Account account) {
String sql = "insert into account(username,balance) value(?,?)";
Object[] obj = new Object[] {
account.getUsername(),
account.getBalance()
};
int num = this.jdbcTemplate.update(sql, obj);
return num;
}}
(4)在applicationContext.xml中,定義一個id為accountDao的Bean,該Bean用于將jadcTemplate注入到accountDao實例中,代碼如下所示。
<!-- 將jdbcTemplate注入到accountDao實例中 -->
4.結論
本文對Spring框架中使用JDBC進行數據操作的理論、方法和步驟進行詳細說明。首先了解了Spring JDBC中的核心類以及如何在Spring中配置JDBC,然后通過案例講解了Spring JDBC核心類JdbcTemplate中常用方法的使用,通過本文的學習,讀者能夠學會使用Spring框架進行數據庫開發,并能深切地體會到Spring框架進行數據庫編程的強大。
參考文獻:
[1]沃爾斯. Spring實戰 [M]. 人民郵電出版社,2016.
[2]卡內爾. Spring開發三劍客[M],人民郵電出版社, 2020.
[3] 陳恒等. Spring Boot從入門到實戰[M]. 清華大學出版社出版社,2020.