這節(jié)來(lái)說(shuō)說(shuō)全局配置文件的東西,非常簡(jiǎn)單??匆槐榫投?。 --WH 一、全部配置內(nèi)容 SqlMapConfig.xml的配置內(nèi)容和順序如下,順序不能亂。現(xiàn)在來(lái)對(duì)這些屬性的意思一一進(jìn)行講解。
二、properties 作用:引用java屬性文件中的配置信息,比如,加載連接數(shù)據(jù)庫(kù)的各種屬性的配置文件?!?/p> db.properties ![]() ![]() 1 <!--
2 properties:引用java屬性文件中的配置信息
3 比如加載連接數(shù)據(jù)庫(kù)的賬號(hào)密碼等信息的properties配置文件。
4 使用${}可以引用已經(jīng)加載的java配置文件中的信息
5 使用時(shí)注意一個(gè)問(wèn)題,mybatis按照下面的順序加載屬性
6 1、properties標(biāo)簽體內(nèi)的屬性
7 2、properties引用的屬性會(huì)被讀取,本例中也就是db.properties中的屬性(key-value),
8 如果發(fā)現(xiàn)db.properties中有和第一步加載的屬性的key相同的屬性,那么將其覆蓋
9 3、parameterType:接收的值最后被讀取,parameterType='int' int相當(dāng)于key,而實(shí)際上接收到的值
10 為value,如果parameterType的屬性名與前面兩步中的屬性名相同,那么將其覆蓋。
11 總結(jié):加載的越快,就很有可能被覆蓋,所以在properties中的key值都使用db.xxx,目的就是防止重名被覆蓋
12 -->
13 <properties resource='db.properties'>
14 <!-- 這里就是properties標(biāo)簽體內(nèi)的屬性
15 比如: <property name='' value=''/>
16 -->
17 </properties>
18 //使用db.properties中的配置信息
19 <dataSource type='POOLED'>
20 <!-- 引用db.properties中的信息,通過(guò)${} -->
21 <property name='driver' value='${db.driver}'/>
22 <property name='url' value='${db.url}'/>
23 <property name='username' value='${db.username}'/>
24 <property name='password' value='${db.password}'/>
25 </dataSource>
三、settings <!-- setting 全局參數(shù),比如懶加載、是否啟動(dòng)緩存機(jī)制--> 這個(gè)在后面講解懶加載時(shí)會(huì)講解到。比如設(shè)置懶加載的全局參數(shù) ![]() ![]() 1 <!-- setting 全局參數(shù),比如懶加載、是否啟動(dòng)緩存機(jī)制-->
2 <settings>
3 <!-- 打開(kāi)延遲加載的開(kāi)關(guān),默認(rèn)為true -->
4 <setting name='lazyLoadingEnabled' value='true'/>
5 <!-- 積極的懶加載,默認(rèn)是true,設(shè)置為false時(shí),懶加載生效 -->
6 <setting name='aggressiveLazyLoading' value='false'/>
7 </settings>
8
四、typeAliases 別名,為了在映射文件中更方便的編寫(xiě)輸入?yún)?shù)類(lèi)型和輸出結(jié)果類(lèi)型,比如直接編寫(xiě)int,就是在這里設(shè)置。(使用推薦的) ![]() ![]() 1 <!-- typeAliases:別名,為了在映射文件中更方便的編寫(xiě)輸入?yún)?shù)類(lèi)型和輸出結(jié)果類(lèi)型,比如直接編寫(xiě)int,
2 而不需要在編寫(xiě)全限定名 java.lang.Integer了。 有很多默認(rèn)的別名,比如int,String,八大基本類(lèi)型都是
3 我們也可以自定義別名,
4 com.wuhao.mybatis.domain.User 使用別名 user 代替
5 -->
6 <typeAliases>
7 <!-- 單個(gè)定義別名 -->
8 <typeAlias type='com.wuhao.mybatis.domain.User' alias='user'/>
9 <!-- 批量定義別名(推薦)
10 指定批量定義別名的類(lèi)包,在此包下的所有類(lèi)都將可以使用別名,別名就為類(lèi)名(首字母大小寫(xiě)都可以)
11 -->
12 <!-- <package name='com.wuhao.mybatis.domain'/> -->
13 </typeAliases>
mybatis中有很多默認(rèn)的別名,也就是幫我們寫(xiě)好了的,比如八大基本類(lèi)型, 五、typeHandlers 類(lèi)型轉(zhuǎn)換器,將數(shù)據(jù)庫(kù)的類(lèi)型轉(zhuǎn)換成java的類(lèi)型,mybatis會(huì)幫我們做這個(gè)事情,我們不需要自己設(shè)置,在mybatis的jar包中,有一個(gè) 其中就會(huì)將類(lèi)型轉(zhuǎn)換器,轉(zhuǎn)換哪些java類(lèi)型都會(huì)列舉出來(lái),我們?nèi)タ纯?,用?lái)借鑒借鑒,等用到了可以到里面查查,
六、objectFactory 對(duì)象工廠不用管,因?yàn)榈綍r(shí)候肯定和spring整合,都會(huì)由sprig來(lái)管理,到與spring整合的時(shí)候就會(huì)講解到對(duì)象工廠的了。
七、mappers 加載映射文件,也就是我們配置的映射文件,在這里需要顯示聲明加載。有四種方式加載,使用推薦的那種,其他的了解 使用第四種方式加載 ![]() ![]() 1 <!--
2 mappers:加載映射文件
3 四種方式來(lái)加載
4 1、<mapper resource='config/sqlmap/user.xml'/>
5 使用相對(duì)路徑,相對(duì)于項(xiàng)目底下。,比如config下的sqlmap下的user.xml
6 2、<mapper url=’’/>
7 使用絕對(duì)路徑,比如d盤(pán)下的xx,不會(huì)用這種
8 3、<mapper class=’’/>
9 使用mapper接口的全縣定名。就不用管路徑問(wèn)題了,讓mybatis通過(guò)全限定名自己去找映射文件
10 前提:mapper接口的名稱(chēng)必須與映射文件的名稱(chēng)相同,并且放到一個(gè)目錄下,
11 比如:UserMapper.java(接口) UserMapper.xml(映射文件)
12 4、<package name=’’/>(推薦)
13 注冊(cè)指定包下的所有映射文件
14 <package name='com.wuhao.mapper'/>
15 配置了com.wuhao.mapper下的所有映射文件,
16 注意:此種方法要求mapper接口和mapper映射文件要名稱(chēng)相同,且放到同一個(gè)目錄下
17 -->
18 <mappers>
19 <!-- <mapper resource='sqlmap/User.xml'/> -->
20 <!-- 批量加載映射文件 -->
21 <package name='com.wuhao.mapper'/>
22 <package name='com.wuhao.shuru'/>
23 <package name='com.wuhao.resultMap'/>
24 <package name='com.wuhao.onetoone'/>
25 </mappers>
八,總的配置文件代碼 ![]() ![]() 1 <?xml version='1.0' encoding='UTF-8' ?>
2 <!DOCTYPE configuration
3 PUBLIC '-////DTD Config 3.0//EN'
4 'http:///dtd/mybatis-3-config.dtd'>
5 <configuration>
6 <!--
7 屬性
8 <properties></properties>
9 全局參數(shù)設(shè)置
10 <settings></settings>
11 類(lèi)型別名
12 <typeAliases></typeAliases>
13 類(lèi)型處理器
14 <typeHandles></typeHandles>
15 對(duì)象工廠
16 <objectFactory></objectFactory>
17 插件
18 <plugins></plugins>
19 以上屬性在后邊會(huì)詳細(xì)講解到,現(xiàn)在我們就只需要關(guān)注一下下面的配置即可
20 如下所配置的就是使用這點(diǎn)東西。
21 environments(環(huán)境信息集合)
22 environment(單個(gè)環(huán)境信息)
23 transactionManager(事物)
24 dataSource(數(shù)據(jù)源)
25 environment
26 environments
27 mappers(映射器)
28 -->
29
30 <!--
31 properties:引用java屬性文件中的配置信息
32 比如加載連接數(shù)據(jù)庫(kù)的賬號(hào)密碼等信息的properties配置文件。
33 使用${}可以引用已經(jīng)加載的java配置文件中的信息
34 使用時(shí)注意一個(gè)問(wèn)題,mybatis按照下面的順序加載屬性
35 1、properties標(biāo)簽體內(nèi)的屬性
36 2、properties引用的屬性會(huì)被讀取,本例中也就是db.properties中的屬性(key-value),
37 如果發(fā)現(xiàn)db.properties中有和第一步加載的屬性的key相同的屬性,那么將其覆蓋
38 3、parameterType:接收的值最后被讀取,parameterType='int' int相當(dāng)于key,而實(shí)際上接收到的值
39 為value,如果parameterType的屬性名與前面兩步中的屬性名相同,那么將其覆蓋。
40 總結(jié):加載的越快,就很有可能被覆蓋,所以在properties中的key值都使用db.xxx,目的就是防止重名被覆蓋
41 -->
42 <properties resource='db.properties'>
43 <!-- 這里就是properties標(biāo)簽體內(nèi)的屬性
44 比如: <property name='' value=''/>
45 -->
46 </properties>
47
48 <!-- setting 全局參數(shù),比如懶加載、是否啟動(dòng)緩存機(jī)制-->
49 <!-- <settings>
50 打開(kāi)延遲加載的開(kāi)關(guān),默認(rèn)為true
51 <setting name='lazyLoadingEnabled' value='true'/>
52 積極的懶加載,默認(rèn)是true,設(shè)置為false時(shí),懶加載生效
53 <setting name='aggressiveLazyLoading' value='false'/>
54 </settings> -->
55
56 <!-- typeAliases:別名,為了在映射文件中更方便的編寫(xiě)輸入?yún)?shù)類(lèi)型和輸出結(jié)果類(lèi)型,比如直接編寫(xiě)int,
57 而不需要在編寫(xiě)全限定名 java.lang.Integer了。 有很多默認(rèn)的別名,比如int,String,八大基本類(lèi)型都是
58 我們也可以自定義別名,
59 com.wuhao.mybatis.domain.User 使用別名 user 代替
60 -->
61 <typeAliases>
62 <!-- 單個(gè)定義別名 -->
63 <typeAlias type='com.wuhao.mybatis.domain.User' alias='user'/>
64 <!-- 批量定義別名(推薦)
65 指定批量定義別名的類(lèi)包,在此包下的所有類(lèi)都將可以使用別名,別名就為類(lèi)名(首字母大小寫(xiě)都可以)
66 -->
67 <!-- <package name='com.wuhao.mybatis.domain'/> -->
68 </typeAliases>
69
70 <!-- 類(lèi)型轉(zhuǎn)換器,將數(shù)據(jù)庫(kù)的類(lèi)型轉(zhuǎn)換成java的類(lèi)型,
71 mybatis會(huì)幫我們做這個(gè)事情,我們不需要自己設(shè)置,
72 <typeHandlers></typeHandlers>
73 -->
74
75 <!--
76 對(duì)象工廠不用管,因?yàn)榈綍r(shí)候肯定和spring整合,都會(huì)由sprig來(lái)管理。
77 <objectFactory></objectFactory>
78 -->
79
80 <!--
81 mappers:加載映射文件
82 四種方式來(lái)加載
83 1、<mapper resource='config/sqlmap/user.xml'/>
84 使用相對(duì)路徑,相對(duì)于項(xiàng)目底下。,比如config下的sqlmap下的user.xml
85 2、<mapper url=’’/>
86 使用絕對(duì)路徑,比如d盤(pán)下的xx,不會(huì)用這種
87 3、<mapper class=’’/>
88 使用mapper接口的全縣定名。就不用管路徑問(wèn)題了,讓mybatis通過(guò)全限定名自己去找映射文件
89 前提:mapper接口的名稱(chēng)必須與映射文件的名稱(chēng)相同,并且放到一個(gè)目錄下,
90 比如:UserMapper.java(接口) UserMapper.xml(映射文件)
91 4、<package name=’’/>(推薦)
92 注冊(cè)指定包下的所有映射文件
93 <package name='com.wuhao.mapper'/>
94 配置了com.wuhao.mapper下的所有映射文件,
95 注意:此種方法要求mapper接口和mapper映射文件要名稱(chēng)相同,且放到同一個(gè)目錄下
96 -->
97
98
99
100 <!-- 配置mybatis的環(huán)境信息 -->
101 <environments default='development'>
102 <environment id='development'>
103 <!-- 配置JDBC事務(wù)控制,由mybatis進(jìn)行管理 -->
104 <transactionManager type='JDBC'></transactionManager>
105 <!-- 配置數(shù)據(jù)源,采用dbcp連接池 -->
106 <dataSource type='POOLED'>
107 <!-- 引用db.properties中的信息,通過(guò)${} -->
108 <property name='driver' value='${db.driver}'/>
109 <property name='url' value='${db.url}'/>
110 <property name='username' value='${db.username}'/>
111 <property name='password' value='${db.password}'/>
112 </dataSource>
113 </environment>
114 </environments>
115 <!-- 加載mapper映射文件 -->
116 <mappers>
117 <!-- <mapper resource='sqlmap/User.xml'/> -->
118 <!-- 批量加載映射文件 -->
119 <package name='com.wuhao.mapper'/>
120 <package name='com.wuhao.shuru'/>
121 <package name='com.wuhao.resultMap'/>
122 <package name='com.wuhao.onetoone'/>
123 </mappers>
124 </configuration>
九、總結(jié) 以上就把全局配置文件中的內(nèi)容全部給講解了一遍,其中 沒(méi)有具體講解這個(gè),因?yàn)槎际撬罇|西,在前一章節(jié)都是使用這個(gè),所以就不在過(guò)多分析,其他的都有講解到是什么作用,現(xiàn)在應(yīng)該對(duì)前面一章的東西有更加深入的理解,但是需要徹底理解,還需要等待下一章講解映射文件之后才能夠更加清晰。加油。 |
|
來(lái)自: Levy_X > 《JAVAWEB學(xué)習(xí)資料》