MyBatis學習--SqlMapConfig.xml設定檔,sqlmapconfig.xml配置

來源:互聯網
上載者:User

MyBatis學習--SqlMapConfig.xml設定檔,sqlmapconfig.xml配置

  • 簡介

  SqlMapConfig.xml是MyBatis的全域設定檔,在前面的文章中我們可以看出,在SqlMapConfig.xml主要是配置了資料來源、事務和對應檔,其實在SqlMapConfig.xml中還可以配置很多資訊,如:

  1、properties(屬性)

  2、settings(全域配置參數)

  3、typeAliases(類型別名)

  4、typeHandlers(類型處理器)

  5、objectFactory(對象工廠)

  6、plugins(外掛程式)

  7、environments(環境集合屬性對象)

    7.1、environment(環境子屬性對象)

    7.2、transactionManager(交易管理)

    7.3、dataSource(資料來源)

  8、mappers(映射器)

 

  • properties

  資料庫連接參數單獨配置在db.properties中,只需要在SqlMapConfig.xml中載入db.properties的屬性值,在SqlMapConfig.xml中就不需要對資料庫連接參數寫入程式碼,將資料庫連接參數只配置在db.properties中,原因:方便對參數進行統一管理,其它xml可以引用該db.properties。這樣如果有多處修改資料來源資訊的話,只需要修改db.properties設定檔即可。

  在classpath下定義db.properties檔案如下:

 

1 jdbc.driver=com.mysql.jdbc.Driver2 jdbc.url=jdbc:mysql://localhost:3306/shop3 jdbc.username=root4 jdbc.password=

 

  SqlMapConfig.xml引用如下:

 1   <properties resource="db.properties"/> 2     <environments default="development"> 3         <environment id="development"> 4             <transactionManager type="JDBC"/> 5             <dataSource type="POOLED"> 6                 <property name="driver" value="${jdbc.driver}"/> 7                 <property name="url" value="${jdbc.url}"/> 8                 <property name="username" value="${jdbc.username}"/> 9                 <property name="password" value="${jdbc.password}"/>10             </dataSource>11       </environment>12   </environments>

  properties特性:

  MyBatis 將按照下面的順序來載入屬性:

  1、在 properties 元素體內定義的屬性首先被讀取。

  2、然後會讀取properties 元素中resource或 url 載入的屬性,它會覆蓋已讀取的同名屬性。

  3、最後讀取parameterType傳遞的屬性,它會覆蓋已讀取的同名屬性。

  因此,通過parameterType傳遞的屬性具有最高優先順序,resource或 url 載入的屬性次之,最低優先順序的是 properties 元素體內定義的屬性。

  一般不要在properties元素體內添加任何屬性值,只將屬性值定義在properties檔案中。在properties檔案中定義屬性名稱要有一定的特殊性,如:XXXXX.XXXXX.XXXX。

 

  • settings(全域配置參數)

  mybatis架構在運行時可以調整一些運行參數。比如:開啟二級緩衝、開啟消極式載入。全域參數將會影響mybatis的運行行為。具體需要可以查看MyBatis的文檔。

 

  • typeAliases(類型別名)

  在mapper.xml中,定義很多的statement,statement需要parameterType指定輸入參數的類型、需要resultType指定輸出結果的映射類型。如果在指定類型時輸入類型全路徑,不方便進行開發,可以針對parameterType或resultType指定的類型定義一些別名,在mapper.xml中通過別名定義,方便開發。

  1、MyBatis預設支援的別名:

別名

映射的類型

_byte 

byte 

_long 

long 

_short 

short 

_int 

int 

_integer 

int 

_double 

double 

_float 

float 

_boolean 

boolean 

string 

String 

byte 

Byte 

long 

Long 

short 

Short 

int 

Integer 

integer 

Integer 

double 

Double 

float 

Float 

boolean 

Boolean 

date 

Date 

decimal 

BigDecimal 

bigdecimal 

BigDecimal 

 

 

 

  2、自訂別名:

1 <typeAliases>2         <!-- 單個別名 -->3         <typeAlias type="com.luchao.mybatis.first.po.User" alias="user"/>4 </typeAliases>

  3、批量別名:

1 <typeAliases>2         <!-- 批量別名定義,掃描整個包下的類,別名為類名(首字母大寫或小寫都可以) -->3         <package name="com.luchao.mybatis.first.po"/>4 </typeAliases>
  • typeHandlers(類型處理器)

  類型處理器用於java類型和jdbc類型映射,如下:

 

1 <select id="findUserById" parameterType="int" resultType="user">2 select * from user where id = #{id}3 </select>

 

  mybatis內建的類型處理器基本上滿足日常需求,不需要單獨定義。

  mybatis支援類型處理器:

 

類型處理器

Java類型

JDBC類型

BooleanTypeHandler 

Boolean,boolean 

任何相容的布爾值

ByteTypeHandler 

Byte,byte 

任何相容的數字或位元組類型

ShortTypeHandler 

Short,short 

任何相容的數字或短整型

IntegerTypeHandler 

Integer,int 

任何相容的數字和整型

LongTypeHandler 

Long,long 

任何相容的數字或長整型

FloatTypeHandler 

Float,float 

任何相容的數字或單精確度浮點型

DoubleTypeHandler 

Double,double 

任何相容的數字或雙精確度浮點型

BigDecimalTypeHandler 

BigDecimal 

任何相容的數字或十進位小數類型

StringTypeHandler 

String 

CHAR和VARCHAR類型

ClobTypeHandler 

String 

CLOB和LONGVARCHAR類型

NStringTypeHandler 

String 

NVARCHAR和NCHAR類型

NClobTypeHandler 

String 

NCLOB類型

ByteArrayTypeHandler 

byte[] 

任何相容的位元組流類型

BlobTypeHandler 

byte[] 

BLOB和LONGVARBINARY類型

DateTypeHandler 

Date(java.util)

TIMESTAMP類型

DateOnlyTypeHandler 

Date(java.util)

DATE類型

TimeOnlyTypeHandler 

Date(java.util)

TIME類型

SqlTimestampTypeHandler 

Timestamp(java.sql)

TIMESTAMP類型

SqlDateTypeHandler 

Date(java.sql)

DATE類型

SqlTimeTypeHandler 

Time(java.sql)

TIME類型

ObjectTypeHandler 

任意

其他或未指定類型

EnumTypeHandler 

Enumeration類型

VARCHAR-任何相容的字串類型,作為代碼儲存(而不是索引)。

  • mappers(映射器)

  Mapper配置的幾種方法:

  1、<mapper resource=" " />

  使用相對於類路徑的資源,如:<mapper resource="sqlmap/User.xml" />

  2、<mapper url=" " />

  使用完全限定路徑,如:<mapper url="file:///D:\workspace_spingmvc\mybatis_01\config\sqlmap\User.xml" />

  3、 <mapper class=" " />

  單個別名定義,使用mapper介面類路徑,如:<mapper class="com.luchao.mybatis.first.mapper.UserMapper"/>

  注意:此種方法要求mapper介面名稱和mapper對應檔名稱相同,且放在同一個目錄中。

  通過mapper介面載入單個 對應檔遵循一些規範:需要將mapper介面類名和mapper.xml對應檔名稱保持一致,且在一個目錄中

  上邊規範的前提是:使用的是mapper代理方法

  4、<package name=""/>

  註冊指定包下的所有mapper介面,如:<package name="cn.itcast.mybatis.mapper"/>

  注意:此種方法要求mapper介面名稱和mapper對應檔名稱相同,且放在同一個目錄中。

  批量載入mapper,指定mapper介面的包名,mybatis自動掃描包下邊所有mapper介面進行載入,遵循一些規範:需要將mapper介面類名和mapper.xml對應檔名稱保持一致,且在一個目錄 中

上邊規範的前提是:使用的是mapper代理方法

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.