Spring和Mybatis的整合

2021-10-06 16:40:39 字數 1554 閱讀 8721

需要spring和mybatis的整合包 mybatis-spring-1.2.2.jar

在spring容器中載入sqlsessionfactory類 org.mybatis.spring.sqlsessionfactorybean

a.需要載入mybatis的配置檔案 configlocation 字串注入 mybatis配置檔案位址

b.需要載入資料來源 ref注入第三方資料來源(自帶的資料來源一般用於測試環境不用於生產環境)

c.配置別名 typealiasespackage 注入包的字串

第三放資料來源 druid,c3p0,dbcp…每種資料來源都有自己注入的屬性

一般載入第三方資料來源需要從配置檔案中載入連線的資料

載入資料庫的配置檔案 org.springframework.beans.factory.config.propertyplaceholderconfigurer

(spring提供的外部屬性載入的類,此類在整個容器中只能有乙個,先載入的先用)

配置spring的事務

註解式spring事務

a.用spring自帶的事務類 org.springframework.jdbc.datasource.datasourcetransactionmanager (需要注入資料來源)

b.開啟spring事務註解支援 tx:annotation-driven 設定spring的事務為預設的事務 transaction-manager指定成spring的事務

c.在service層需要增加事務的方法上加@transactional 當前方法就支援事務

aop配置service層事務

a.用spring自帶的事務類 org.springframework.jdbc.datasource.datasourcetransactionmanager

需要注入資料來源

b.aop宣告式事務使用的是around通知

配置切入點,配置通知 aop:advisor 指向tx:advice

配置tx:advice 攔截響應地 方法

事務的傳播屬性propagation(了解)

required 支援當前事務,如果b沒有事務,新建乙個事務

supports 支援當前事務,如果b沒有事務,以非事務方法執行

mandatory 支援當前事務,如果b沒有事務,直接丟擲異常

required_new 新建事務,如果a有事務,a會先掛起,執行b

not_supported 非事務執行,如果a 有事務,a掛起,b不帶事務

never 只有有事務就出現異常

兩種方式的優缺點

1.註解式事務,配置簡單,使用靈活,aop配置配置繁瑣,而且方法必須要按規範命名

2.註解式事務不能統一給service配置事務,aop配置能統一給業務層加事務

<?xml version="1.0" encoding="utf-8"?>

mybatis-config.xml

<?xml version='1.0' encoding='utf-8'?>

spring和mybatis的整合

若要整合spring和mybatis就需要乙個外掛程式即mybatis spring x.x.x.jar。具體的安裝如下所示 org.mybatis mybatis spring x.x.x 要和spring一起使用 mybatis,還需要在 spring 應用上下文中定義至少兩樣東西 乙個 sql...

spring和mybatis的整合

使用連線池連線資料庫 commons dbcp.jar commons pool.jar mybatis spring.jar mybatis config2.xml xml version 1.0 encoding utf 8 doctype configuration public config...

二 mybatis和spring結合

配置 xmlns xmlns context xmlns p xmlns aop xmlns tx xmlns xsi xsi schemalocation spring beans 4.0.xsd spring context 4.0.xsd spring aop 4.0.xsd spring t...