在MyBatis的環境搭建好之後,我們可以對MyBatis做一些常用的優化或者其它設置
目錄
在此之前,我們的核心配置文件是這樣寫的
<?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>
<environments default="development">
<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&useUnicode=true&characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/robot/dao/UserMapper.xml"/>
</mappers>
</configuration>
在此之後,我們的核心配置文件是這樣寫的
db.properties
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8
username=root
password=123456
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"/>
<!-- 日誌工廠-->
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<!-- 給實體類起別名-->
<typeAliases>
<!-- <typeAlias type="com.robot.pojo.User" alias="User"/>-->
<package name="com.robot.pojo"/>
</typeAliases>
<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>
<mappers>
<mapper class="com.robot.dao.UserMapper"/>
</mappers>
</configuration>
引用外部配置文件
<properties> 中我們引用了外部配置文件db.properties,所以在<environment>中才可以如上配置
<properties resource="db.properties"/>
日誌工廠
<setting>中使用了logImpl,他是一個日誌工廠,後面的值爲STDOUT_LOGGING,代表標準日誌輸出
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
當然還有其它的日誌輸出,在後續會單獨介紹如何使用 LOG4J
駝峯命名轉換
<setting>中使用的mapUnderscoreToCamelCase,意爲開啓駝峯命名轉換,比如我們數據庫中字段名爲use_name,開啓轉換之後在Java中就會被轉換爲userName
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
實體類起別名
第一種方式:將這個路徑下的實體類,直接起一個別名爲User
<typeAliases>
<typeAlias type="com.robot.pojo.User" alias="User"/>
</typeAliases>
第二種方式:進行包掃描,這個包下實體類的別名爲首字母小寫的名稱,比如一個實體類爲User,那麼它的別名就爲user
<typeAliases>
<package name="com.robot.pojo"/>
</typeAliases>
但是在第二種包掃描方式中,假如實體類使用了註解,那麼它的別名就是這個註解裏面的值
映射器
註冊綁定我們的Mapper文件
第一種方式:每一個Mapper.xml都需要註冊
<mappers>
<mapper resource="com/robot/dao/UserMapper.xml"/>
</mappers>
第二種方式:使用class文件綁定註冊,每一個Mapper.xml都需要註冊
<mappers>
<mapper class="com.robot.dao.UserMapper"/>
</mappers>
第三種方式:使用包掃描
<mappers>
<package name="com.robot.dao"/>
</mappers>
注意:如果使用後兩種方式,接口和它的Mapper配置文件必須同名、且在同一個包下
總結
以上就是在搭建好MyBatis之後可以做的一些常用配置優化,當然配置遠不止這些,以上只是一些常用的
注意:核心配置文件中標籤是有順序的,比如第一個就是<properties>,而<setting>只能在它的後面,如果寫在它的前面就會報錯,具體順序如下