1. 程式人生 > 其它 >mybatis之配置優化

mybatis之配置優化

屬性優化

properties
  • 外部配置檔案【db.properties】
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF8&serverTimezone=UTC
username=root
password=admin#1234
  • 引入外部配置檔案
<!--    引入外部配置檔案,也可以加入一些屬性,當兩者衝突時,以外部檔案為準-->
    <properties resource="db.properties">
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
    </properties>
environments
<!--可以配置多個環境變數,但是同時只能選擇一個環境  <environments default="test">-->
    <environments default="test">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF8&amp;serverTimezone=UTC"/>
                <property name="username" value="root"/>
                <property name="password" value="admin#1234"/>
            </dataSource>
        </environment>

        <environment id="test">
            <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>
settings
    <settings>
<!--        是否開啟快取-->
        <setting name="cacheEnabled" value="true"/>
<!--        是否開啟懶載入-->
        <setting name="lazyLoadingEnabled" value="true"/>
<!--允許 JDBC 支援自動生成主鍵,需要資料庫驅動支援。如果設定為 true,將強制使用自動生成主鍵。儘管一些資料庫驅動不支援此特性,但仍可正常工作(如 Derby)-->
        <setting name="useGeneratedKeys" value="false"/>
<!--是否開啟駝峰命名自動對映,即從經典資料庫列名 A_COLUMN 對映到經典 Java 屬性名 aColumn。-->
        <setting name="mapUnderscoreToCamelCase" value="false"/>
<!--        指定 MyBatis 所用日誌的具體實現,未指定時將自動查詢。 SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING-->
<!--        <setting name="logImpl" value="LOG4J "/>-->
    </settings>

別名優化

<!--    給實體類加別名-->
	<typeAlias type="com.yeyue.pojo.User" alias="User"></typeAlias> 

<!--    <package name="com.yeyue.pojo"/> 指定一個包名,會在包下掃描實體類,預設以類名的首字母小寫作為別名,不可以自定義別名,但可以藉助註解來實現
@Alias("RealUser")
public class User {}
-->
    <typeAliases>
        <package name="com.yeyue.pojo"/>
    </typeAliases>

對映器

  • UserMapper.xml直接在核心配置檔案中註冊
<mapper resource="com\yeyue\dao\UserMapper.xml"/>
  • 通過介面類來對映

    • 類和mapper配置檔案需要同名
    • 類和mapper配置檔案必須在同一包下
  <mapper class="com.yeyue.dao.UserMapper"/>
  • 通過包來對映
    • 類和mapper配置檔案需要同名
    • 類和mapper配置檔案必須在同一包下
<package name="com.yeyue.dao"/>