Mybatis配置解析

目錄

一 核心配置文件

二 環境配置(environments)

三 屬性(properties)

四 別名

五 設置

六 映射器


一 核心配置文件

mybatis-config.xml
MyBatis 的配置文件包含了會深深影響 MyBatis 行爲的設置和屬性信息。
properties(屬性)
settings(設置)
typeAliases(類型別名)
typeHandlers(類型處理器)
objectFactory(對象工廠)
plugins(插件)
environments(環境配置)
environment(環境變量)
transactionManager(事務管理器)
dataSource(數據源)
databaseIdProvider(數據庫廠商標識)
mappers(映射器)

二 環境配置(environments)

MyBatis可以配置成適應多種環境。
不過要記住:儘管可以配置多個環境,但每個SqlSessionFactory實例只能選擇一種環境。
Mybatis默認的事務管理器就是JDBC,連接池:POOLED
學會使用配置多套運行環境!

三 屬性(properties)

1 外部配置文件db.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8
username=root
password=123456

2 核心配置文件mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--引入外部配置文件-->
    <properties resource="db.properties">
        <property name="username" value="root"/>
        <property name="password" value="456789"/>
    </properties>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <!--下面這個寫法要牢記-->
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}}"/>
            </dataSource>
        </environment>
    </environments>
    <!--每一個mapper都要在mybatis核心配置文件中配置-->
    <mappers>
        <mapper resource="com/cakin/mapper/UserMapper.xml"></mapper>
    </mappers>
</configuration>

可以直接引入外部文件。

可以在覈心配置文件中增加一些屬性配置。
如果兩個文件有同一個字段,優先使用外部配置文件。

四 別名

1 類型別名可爲 Java 類型設置一個縮寫名字。
2 意在降低冗餘的全限定類名書寫。
第一種別名
<!--給 com.cakin.pojo.User 其了個別名User-->
<typeAliases>
    <typeAlias type="com.cakin.pojo.User" alias="User"/>
</typeAliases>

第二種別名

也可以指定一個包名,MyBatis會在包名下面搜索需要的Java Bean,比如:掃描實體類的包,它的默認別名就爲這個類的類名,首字母小寫!
<!--掃描實體類的包,它的默認別名就爲這個類的類名,首字母小寫大寫都可以!-->
<typeAliases>
    <package name="com.cakin.pojo"/>
</typeAliases>

在實體類比較少的時候,使用第一種方式。

如果實體類十分多,建議使用第二種。
第一種可以自定義別名,第二種則不行,如果一定要改,需要在實體上增加註解。
// 通過註解起別名
@Alias("User")

五 設置

一個配置完整的 settings 元素的示例如下
<settings>
  <setting name="cacheEnabled" value="true"/>
  <setting name="lazyLoadingEnabled" value="true"/>
  <setting name="multipleResultSetsEnabled" value="true"/>
  <setting name="useColumnLabel" value="true"/>
  <setting name="useGeneratedKeys" value="false"/>
  <setting name="autoMappingBehavior" value="PARTIAL"/>
  <setting name="autoMappingUnknownColumnBehavior" value="WARNING"/>
  <setting name="defaultExecutorType" value="SIMPLE"/>
  <setting name="defaultStatementTimeout" value="25"/>
  <setting name="defaultFetchSize" value="100"/>
  <setting name="safeRowBoundsEnabled" value="false"/>
  <setting name="mapUnderscoreToCamelCase" value="false"/>
  <setting name="localCacheScope" value="SESSION"/>
  <setting name="jdbcTypeForNull" value="OTHER"/>
  <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/></settings>

六 映射器

MapperRegistry:註冊綁定我們的Mapper文件;
方式一:
<mappers>
    <mapper resource="com/cakin/mapper/UserMapper.xml"></mapper>
</mappers>

方式二:

<mappers>
    <!--通過class來配置映射器-->
    <mapper class="com.cakin.mapper.UserMapper"/>
</mappers>

注意點

接口和它的配置文件必須同名。
接口和它的配置文件必須在同一包下。
方式三
<mappers>
    <!-- 將包內的映射器接口實現全部註冊爲映射器 -->
    <package name="com.cakin.mapper"/>
</mappers>

注意點

接口和它的配置文件必須同名。
接口和它的配置文件必須在同一包下。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章