




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第MyBatis全局配置文件詳解目錄MyBatis全局配置文件settings設(shè)置typeAliases類型命名存在的問(wèn)題:@Alias("")environments環(huán)境transactionManager事務(wù)管理器JDBC:JdbcTransactionFactorydatabaseIdProvider數(shù)據(jù)庫(kù)廠商標(biāo)識(shí)DB_VENDOR變短sql映射文件總結(jié)
MyBatis全局配置文件
MyBatis的配置文件包含了影響MyBatis行為甚深的設(shè)置(settings)和屬性(properties)信息。文檔的
頂層結(jié)構(gòu)如下:
configuration配置
properties屬性
settings設(shè)置
typeAliases類型命名
typeHandlers類型處理器
objectFactory對(duì)象工廠
plugins插件
environments環(huán)境
environment環(huán)境變量
transactionManager事務(wù)管理器
dataSource數(shù)據(jù)源
databaseIdProvider數(shù)據(jù)庫(kù)廠商標(biāo)識(shí)
mappers映射器
properties屬性
mybatis可以使用properties來(lái)引入外部properties配置文件的內(nèi)容
resource:引入類路徑下的資源
url:引入網(wǎng)絡(luò)路徑或者磁盤路徑下的資源
propertiesresource="perties"/properties
如果屬性在不只一個(gè)地方進(jìn)行了配置,那么MyBatis將按照下面的順序來(lái)加載:
在properties元素體內(nèi)指定的屬性首先被讀取。
然后根據(jù)properties元素中的resource屬性讀取類路徑下屬性文件或根據(jù)url屬性指定的路徑讀取屬性文件,并覆蓋已讀取的同名屬性。–最后讀取作為方法參數(shù)傳遞的屬性,并覆蓋已讀取的同名屬性。
settings設(shè)置
這是MyBatis中極為重要的調(diào)整設(shè)置,它們會(huì)改變MyBatis的運(yùn)行時(shí)行為。
setting包含很多重要的設(shè)置項(xiàng)
setting:用來(lái)設(shè)置每一個(gè)設(shè)置項(xiàng)
name:設(shè)置項(xiàng)名
value:設(shè)置項(xiàng)的取值
mapUnderscoreToCamelCase:駝峰命名last_name-lastName
settings
settingname="mapUnderscoreToCamelCase"value="true"/
/settings
typeAliases類型命名
typeAliases:可以批量設(shè)置別名這個(gè)包下的每一個(gè)類
別名不區(qū)分大小寫
創(chuàng)建一個(gè)默認(rèn)的別名,就是簡(jiǎn)單類名小寫
typeAlias:為某個(gè)java類型起別名
type:指定要起別名的類型全類名;默認(rèn)別名就是類名小寫:employee
alias:指定新的別名
package:為某個(gè)包下的所有類批量起別名
name:指定包名(為當(dāng)前包下以及下面所有的后代包的每一個(gè)類都起一個(gè)默認(rèn)的別名(類名小寫))
存在的問(wèn)題:
假設(shè)bean包下有一個(gè)類Employee,同時(shí)在bean包下有一個(gè)子包也有一個(gè)類叫Employee,此時(shí)這兩個(gè)包的類名就會(huì)沖突,因此還可以使用注解的放上為類創(chuàng)建別名
@Alias("")
publicclassEmployee{}
值得注意的是,MyBatis已經(jīng)為許多常見的Java類型內(nèi)建了相應(yīng)的類型別名。它們都是大小寫不敏感的,我們?cè)谄饎e名的時(shí)候千萬(wàn)不要占用已有的別名。
environments環(huán)境
mybatis可以配置多種環(huán)境default指定使用某種環(huán)境,可以達(dá)到快速切換
environments:配置一個(gè)具體的環(huán)境信息;必須有兩個(gè)標(biāo)簽,id代表當(dāng)前環(huán)境的唯一標(biāo)識(shí)
transactionManager事務(wù)管理器
type:事務(wù)管理器的類型[JDBC(使用了JDBC的提交和回滾設(shè)置,依賴于從數(shù)據(jù)源得到的連接來(lái)管理事務(wù)范圍。)|MANAGED(不提交或回滾一個(gè)連接、讓容器來(lái)管理事務(wù)的整個(gè)生命周期(比如JEE應(yīng)用服務(wù)器的上下文))]
JDBC:JdbcTransactionFactory
自定義事務(wù)管理器實(shí)現(xiàn)TransactionFactory接口即可
dataSource數(shù)據(jù)源
type:數(shù)據(jù)源的類型[UNPOOLED(不使用連接池)|POOLED(使用連接池)|JNDI(在EJB或應(yīng)用服務(wù)器這類容器中查找指定的數(shù)據(jù)源)]
自定義數(shù)據(jù)源實(shí)現(xiàn)DataSourceFactory接口
實(shí)際開發(fā)中我們使用Spring管理數(shù)據(jù)源,并進(jìn)行事務(wù)控制的配置來(lái)覆蓋上述配置
databaseIdProvider數(shù)據(jù)庫(kù)廠商標(biāo)識(shí)
databaseIdProvider:可以根據(jù)不同的數(shù)據(jù)庫(kù)廠商執(zhí)行不同的語(yǔ)句。
type:數(shù)據(jù)庫(kù)類型DB_VENDOR
作用就是得到數(shù)據(jù)庫(kù)廠商標(biāo)識(shí)(驅(qū)動(dòng)自帶的),mybatis就能根據(jù)數(shù)據(jù)庫(kù)廠商標(biāo)識(shí)來(lái)執(zhí)行不同的sql
MYSQLOracleSQLServer
value:為標(biāo)識(shí)起一個(gè)別名,方便SQL語(yǔ)句使用databaseId屬性引用
DB_VENDOR
會(huì)通過(guò)DatabaseMetaData#getDatabaseProductName()返回的字符串進(jìn)行設(shè)置。由于通常情況下這個(gè)字符串都非常長(zhǎng)而且相同產(chǎn)品的不同版本會(huì)返回不同的值,所以最好通過(guò)設(shè)置屬性別名來(lái)使其
變短
MyBatis匹配規(guī)則如下:
如果沒(méi)有配置databaseIdProvider標(biāo)簽,那么databaseId=null
如果配置了databaseIdProvider標(biāo)簽,使用標(biāo)簽配置的name去匹配數(shù)據(jù)庫(kù)信息,匹配上設(shè)置databaseId=配置指定的值,否則依舊為null
如果databaseId不為null,他只會(huì)找到配置databaseId的sql語(yǔ)句
MyBatis會(huì)加載不帶databaseId屬性和帶有匹配當(dāng)前數(shù)據(jù)庫(kù)databaseId屬性的所有語(yǔ)句。如果同時(shí)找到帶有databaseId和不帶databaseId的相同語(yǔ)句,則后者會(huì)被舍棄。
mappers映射器
mapper:注冊(cè)一個(gè)sql映射
注冊(cè)配置文件
resource:引用類路徑下的sql映射文件
url:用網(wǎng)路路徑下的或者磁盤路徑下的sql映射文件
注冊(cè)接口
class:引應(yīng)用接口
接口映射文件,映射文件名必須和接口同名,并且放在同一個(gè)目錄下
沒(méi)有sql映射文件,所有的sql利用注解寫在接口上
注解寫在接口上
推薦:比較重要和復(fù)雜額Dao接口寫sql映射文件,不重要的簡(jiǎn)單的為了開發(fā)快速可以使用注解
package:批量注冊(cè)
sql映射文件
namespace:名稱空間;指定為接口的全類名
id:唯一標(biāo)識(shí)
resultType:返回值類型
xmlversion="1.0"encoding="UTF-8"
!DOCTYPEmapper
PUBLIC"-////DTDMapper3.0//EN"
"/dtd/mybatis-3-mapper.dtd"
mappernamespace="school.xauat.mybatis.dao.EmployeeMapper"
selectid="getEmpById"resultType="employee"
select*fromtbl_employeewhereid=#{id}
/select
selectid="getEmpById"resultType="employee"databaseId="mysql"
select*fromtbl_employeewhereid=#{id}
/select
selectid="getEmpById"resultType="employee"databaseId="oracle"
select*fromtbl_employeewhereid=#{id}
/select
/mapper
總結(jié)
1、接口是編程
原生:Dao-----DaoImpl
Mybatis:Mapper-----xxMapper.xml
2、SqlSession代表和數(shù)據(jù)庫(kù)的一次會(huì)話,用完必須關(guān)閉
3、SqlSession和connection一樣,都是非線程安全的。每次使用都應(yīng)該獲取新的對(duì)象
4、mapper接口沒(méi)有實(shí)現(xiàn)類
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)CDMA無(wú)線接入平臺(tái)數(shù)據(jù)監(jiān)測(cè)報(bào)告
- 2025年中國(guó)3,5-雙三氟甲基苯胺數(shù)據(jù)監(jiān)測(cè)報(bào)告
- 2025至2030年中國(guó)非金屬工藝品激光雕刻切割機(jī)市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)鋁輪帽市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)連續(xù)鍛造加熱爐市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)草莓果苗市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)維綸子口布市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)電動(dòng)車組裝線市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)灌裝機(jī)回氣針市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)汽車吊液壓零部件市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 醫(yī)療質(zhì)量活動(dòng)月活動(dòng)方案
- 2025至2030中國(guó)汽車售后服務(wù)行業(yè)市場(chǎng)現(xiàn)狀分析及競(jìng)爭(zhēng)格局與投資發(fā)展報(bào)告
- 廣東省梅州市五華縣2024-2025學(xué)年七年級(jí)下學(xué)期數(shù)學(xué)期末考試模擬卷(含答案)
- 警察政治培訓(xùn)課件
- 毒蛇咬傷的急救處理要點(diǎn)
- 2025年山西萬(wàn)家寨水務(wù)控股集團(tuán)所屬企業(yè)招聘筆試參考題庫(kù)含答案解析
- 2025至2030中國(guó)工業(yè)軟件行業(yè)項(xiàng)目調(diào)研及市場(chǎng)前景預(yù)測(cè)評(píng)估報(bào)告
- 2025年中國(guó)舒適眼鏡白皮書-艾瑞咨詢-202506
- 配電故障緊急搶修
- (2025)發(fā)展對(duì)象培訓(xùn)考試題和答案
- 2025年經(jīng)濟(jì)學(xué)基礎(chǔ)理論考試試卷及答案
評(píng)論
0/150
提交評(píng)論