Mybatis(二) 全局配置文件詳解


        這節來說說全局配置文件的東西,非常簡單。看一遍就懂了。

                          --WZY

一、全部配置內容

      SqlMapConfig.xml的配置內容和順序如下,順序不能亂。現在來對這些屬性的意思一一進行講解。 

       

   

二、properties

     作用:引用java屬性文件中的配置信息,比如,加載連接數據庫的各種屬性的配置文件。 

       

        

        

         db.properties

          

 1     <!-- 
 2             properties:引用java屬性文件中的配置信息
 3         比如加載連接數據庫的帳號密碼等信息的properties配置文件。
 4         使用${}可以引用已經加載的java配置文件中的信息
 5         使用時注意一個問題,mybatis按照下面的順序加載屬性
 6             1、properties標簽體內的屬性
 7             2、properties引用的屬性會被讀取,本例中也就是db.properties中的屬性(key-value),
 8                 如果發現db.properties中有和第一步加載的屬性的key相同的屬性,那么將其覆蓋
 9             3、parameterType:接收的值最后被讀取,parameterType="int" int相當於key,而實際上接收到的值
10                 為value,如果parameterType的屬性名與前面兩步中的屬性名相同,那么將其覆蓋。
11         總結:加載的越快,就很有可能被覆蓋,所以在properties中的key值都使用db.xxx,目的就是防止重名被覆蓋
12      -->
13     <properties resource="db.properties">
14         <!-- 這里就是properties標簽體內的屬性
15                 比如: <property name="" value=""/>
16          -->
17     </properties>
18 //使用db.properties中的配置信息
19         <dataSource type="POOLED">
20             <!-- 引用db.properties中的信息,通過${} -->
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>
View Code

 

三、settings

        <!-- setting 全局參數,比如懶加載、是否啟動緩存機制-->

        這個在后面講解懶加載時會講解到。比如設置懶加載的全局參數

        

1     <!-- setting 全局參數,比如懶加載、是否啟動緩存機制-->
2     <settings>
3         <!-- 打開延遲加載的開關,默認為true -->
4         <setting name="lazyLoadingEnabled" value="true"/>
5         <!-- 積極的懶加載,默認是true,設置為false時,懶加載生效 -->
6         <setting name="aggressiveLazyLoading" value="false"/>
7     </settings>
8     
View Code

 

四、typeAliases

        別名,為了在映射文件中更方便的編寫輸入參數類型和輸出結果類型,比如直接編寫int,就是在這里設置。(使用推薦的)

        

 1     <!-- typeAliases:別名,為了在映射文件中更方便的編寫輸入參數類型和輸出結果類型,比如直接編寫int,
 2             而不需要在編寫全限定名 java.lang.Integer了。 有很多默認的別名,比如int,String,八大基本類型都是
 3             我們也可以自定義別名,
 4         com.wuhao.mybatis.domain.User   使用別名  user 代替        
 5      -->
 6      <typeAliases>
 7          <!-- 單個定義別名 -->
 8           <typeAlias type="com.wuhao.mybatis.domain.User" alias="user"/> 
 9          <!-- 批量定義別名(推薦)
10              指定批量定義別名的類包,在此包下的所有類都將可以使用別名,別名就為類名(首字母大小寫都可以)
11           -->
12          <!-- <package name="com.wuhao.mybatis.domain"/> -->
13      </typeAliases>
View Code

        mybatis中有很多默認的別名,也就是幫我們寫好了的,比如八大基本類型,

            

五、typeHandlers

        類型轉換器,將數據庫的類型轉換成java的類型,mybatis會幫我們做這個事情,我們不需要自己設置,在mybatis的jar包中,有一個

                      

        其中就會將類型轉換器,轉換哪些java類型都會列舉出來,我們去看看,用來借鑒借鑒,等用到了可以到里面查查,

              

 

六、objectFactory

        對象工廠不用管,因為到時候肯定和spring整合,都會由sprig來管理,到與spring整合的時候就會講解到對象工廠的了。

 

七、mappers

        加載映射文件,也就是我們配置的映射文件,在這里需要顯示聲明加載。有四種方式加載,使用推薦的那種,其他的了解

              

        使用第四種方式加載

              

 1     <!-- 
 2         mappers:加載映射文件
 3         四種方式來加載
 4         1、<mapper resource="config/sqlmap/user.xml"/> 
 5             使用相對路徑,相對於項目底下。,比如config下的sqlmap下的user.xml
 6          2、<mapper url=’’/>
 7              使用絕對路徑,比如d盤下的xx,不會用這種
 8          3、<mapper class=’’/>
 9              使用mapper接口的全縣定名。就不用管路徑問題了,讓mybatis通過全限定名自己去找映射文件
10              前提:mapper接口的名稱必須與映射文件的名稱相同,並且放到一個目錄下,
11                  比如:UserMapper.java(接口)   UserMapper.xml(映射文件)
12          4、<package name=’’/>(推薦)
13              注冊指定包下的所有映射文件
14                  <package name="com.wuhao.mapper"/>
15                  配置了com.wuhao.mapper下的所有映射文件,
16                  注意:此種方法要求mapper接口和mapper映射文件要名稱相同,且放到同一個目錄下
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>
View Code

 

八,總的配置文件代碼        

  1 <?xml version="1.0" encoding="UTF-8" ?>
  2 <!DOCTYPE configuration
  3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4 "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5 <configuration>
  6     <!--
  7              屬性 
  8         <properties></properties>
  9              全局參數設置
 10         <settings></settings>
 11              類型別名
 12         <typeAliases></typeAliases>
 13             類型處理器
 14         <typeHandles></typeHandles>
 15             對象工廠
 16         <objectFactory></objectFactory>
 17             插件
 18         <plugins></plugins>
 19         以上屬性在后邊會詳細講解到,現在我們就只需要關注一下下面的配置即可
 20             如下所配置的就是使用這點東西。
 21         environments(環境信息集合)
 22             environment(單個環境信息)
 23                 transactionManager(事物)
 24                 dataSource(數據源)
 25             environment
 26         environments    
 27         mappers(映射器)
 28     -->
 29     
 30     <!-- 
 31             properties:引用java屬性文件中的配置信息
 32         比如加載連接數據庫的帳號密碼等信息的properties配置文件。
 33         使用${}可以引用已經加載的java配置文件中的信息
 34         使用時注意一個問題,mybatis按照下面的順序加載屬性
 35             1、properties標簽體內的屬性
 36             2、properties引用的屬性會被讀取,本例中也就是db.properties中的屬性(key-value),
 37                 如果發現db.properties中有和第一步加載的屬性的key相同的屬性,那么將其覆蓋
 38             3、parameterType:接收的值最后被讀取,parameterType="int" int相當於key,而實際上接收到的值
 39                 為value,如果parameterType的屬性名與前面兩步中的屬性名相同,那么將其覆蓋。
 40         總結:加載的越快,就很有可能被覆蓋,所以在properties中的key值都使用db.xxx,目的就是防止重名被覆蓋
 41      -->
 42     <properties resource="db.properties">
 43         <!-- 這里就是properties標簽體內的屬性
 44                 比如: <property name="" value=""/>
 45          -->
 46     </properties>
 47     
 48     <!-- setting 全局參數,比如懶加載、是否啟動緩存機制-->
 49 <!--     <settings>
 50         打開延遲加載的開關,默認為true
 51         <setting name="lazyLoadingEnabled" value="true"/>
 52         積極的懶加載,默認是true,設置為false時,懶加載生效
 53         <setting name="aggressiveLazyLoading" value="false"/>
 54     </settings> -->
 55     
 56     <!-- typeAliases:別名,為了在映射文件中更方便的編寫輸入參數類型和輸出結果類型,比如直接編寫int,
 57             而不需要在編寫全限定名 java.lang.Integer了。 有很多默認的別名,比如int,String,八大基本類型都是
 58             我們也可以自定義別名,
 59         com.wuhao.mybatis.domain.User   使用別名  user 代替        
 60      -->
 61      <typeAliases>
 62          <!-- 單個定義別名 -->
 63           <typeAlias type="com.wuhao.mybatis.domain.User" alias="user"/> 
 64          <!-- 批量定義別名(推薦)
 65              指定批量定義別名的類包,在此包下的所有類都將可以使用別名,別名就為類名(首字母大小寫都可以)
 66           -->
 67          <!-- <package name="com.wuhao.mybatis.domain"/> -->
 68      </typeAliases>
 69             
 70     <!-- 類型轉換器,將數據庫的類型轉換成java的類型,
 71         mybatis會幫我們做這個事情,我們不需要自己設置,
 72         <typeHandlers></typeHandlers>        
 73      -->
 74     
 75     <!-- 
 76         對象工廠不用管,因為到時候肯定和spring整合,都會由sprig來管理。
 77     <objectFactory></objectFactory> 
 78     -->
 79     
 80     <!-- 
 81         mappers:加載映射文件
 82         四種方式來加載
 83         1、<mapper resource="config/sqlmap/user.xml"/> 
 84             使用相對路徑,相對於項目底下。,比如config下的sqlmap下的user.xml
 85          2、<mapper url=’’/>
 86              使用絕對路徑,比如d盤下的xx,不會用這種
 87          3、<mapper class=’’/>
 88              使用mapper接口的全縣定名。就不用管路徑問題了,讓mybatis通過全限定名自己去找映射文件
 89              前提:mapper接口的名稱必須與映射文件的名稱相同,並且放到一個目錄下,
 90                  比如:UserMapper.java(接口)   UserMapper.xml(映射文件)
 91          4、<package name=’’/>(推薦)
 92              注冊指定包下的所有映射文件
 93                  <package name="com.wuhao.mapper"/>
 94                  配置了com.wuhao.mapper下的所有映射文件,
 95                  注意:此種方法要求mapper接口和mapper映射文件要名稱相同,且放到同一個目錄下
 96      -->
 97     
 98     
 99 
100 <!-- 配置mybatis的環境信息 -->
101 <environments default="development">
102     <environment id="development">
103         <!-- 配置JDBC事務控制,由mybatis進行管理 -->
104         <transactionManager type="JDBC"></transactionManager>
105         <!-- 配置數據源,采用dbcp連接池 -->
106         <dataSource type="POOLED">
107             <!-- 引用db.properties中的信息,通過${} -->
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>
View Code

 

九、總結

      以上就把全局配置文件中的內容全部給講解了一遍,其中

          

      沒有具體講解這個,因為都是死東西,在前一章節都是使用這個,所以就不在過多分析,其他的都有講解到是什么作用,現在應該對前面一章的東西有更加深入的理解,但是需要徹底理解,還需要等待下一章講解映射文件之后才能夠更加清晰。加油。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM