Spring JDBC
Spring JdbcTemplate的解析
- Spring框架提供了JdbcTemplate類吼虎,該類是Spring框架數(shù)據(jù)抽象層的基礎,其他更高層次的抽象類卻是構(gòu)建于JdbcTemplate類之上饱狂。(JdbcTemplate類是Spring JDBC的核心類)
JdbcTemplate繼承關系 - 由上圖可以看出,JdbcTemplate類的直接父類是JdbcAccessor,該類為子類提供了一些訪問數(shù)據(jù)庫時使用的公共屬性戈二,具體如下:
- DataSource:主要功能是獲取數(shù)據(jù)庫連接预柒,還可引入對數(shù)據(jù)庫連接的緩沖池和分布式事務的支持队塘,它可以作為訪問數(shù)據(jù)庫資源的標準接口
- SQLExceptionTranslator:該接口負責對SQLException進行轉(zhuǎn)譯工作。通過必要的設置獲取SQLExceptionTranslator中的方法宜鸯,可以使JdbcTemplate在需要處理SQLException時憔古,委托SQLExceptionTranslator的實現(xiàn)類來完成相關的轉(zhuǎn)譯工作
- jdbcOperations接口定義了在JdbcTemplate類中可以使用的操作集合,包括增刪改查
- Spring JDBC模塊負責數(shù)據(jù)庫資源管理和錯誤處理,簡化了開發(fā)人員對數(shù)據(jù)庫的操作
Spring JDBC的配置
Spring JDBC模塊的組成(由4個包組成)曙聂,分別是:core(核心包)廊镜、dataSource(數(shù)據(jù)源包)、object(對象包)焰情、support(支持包)
-
dataSource(數(shù)據(jù)源包):
dataSource4個屬性四種包
例子
JdbcTemplate類中execute()方法的使用
execute(String sql)方法用于執(zhí)行sql語句
JdbcTemplate類中update()方法的使用
update()用于執(zhí)行插入、更新剥懒、刪除操作
update()方法
Spring事務管理的方式(2種)
- (1)編程式事務管理:通過編寫代碼實現(xiàn)事務管理内舟,含定義事務的開始、正常執(zhí)行后的事務提交和異常時的事務回滾
- (2)聲明式事務管理(推薦使用):通過AOP技術實現(xiàn)的事務管理初橘,主要思想是將事務作為一個“切面”代碼單獨編寫验游,然后通過AOP技術將事務管理的“切面”植入到業(yè)務目標類中。(最大特點“開發(fā)者無需通過編程的方式來管理事務)
- Spring 的聲明式事務管理可以通過兩種方式來實現(xiàn):
A保檐、基于 XML 的方式:通過在配置文件中配置事務規(guī)則的相關聲明來實現(xiàn)的耕蝉。
B、基于 Annotation(注釋) 的方式夜只。- Spring 的聲明式事務管理通過 Annotation (注解)的方式來實現(xiàn)垒在。 這種方式的使用非常簡單,開發(fā)者只需做兩件事情:
① 在Spring容器中注冊事務注解驅(qū)動扔亥;
② 在需要使用事務的Spring Bean類或者Bean類的方法上添加注解@Transactional场躯。如果將注解添加在Bean類上谈为,則表示事務的設置對整個Bean類的所有方法都起作用;如果將注解添加在Bean類中的某個方法上,則表示事務的設置只對該方法有效推盛。
- Spring 的聲明式事務管理通過 Annotation (注解)的方式來實現(xiàn)垒在。 這種方式的使用非常簡單,開發(fā)者只需做兩件事情:
- Spring 的聲明式事務管理可以通過兩種方式來實現(xiàn):
JdbcTemplate類中query()方法的使用
query()用于執(zhí)行數(shù)據(jù)查詢
常用query()