properties
新建一個dbconfig.properties來儲存資料庫的配置資訊
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=root
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>
<!--
1. mybatis 可以使用properties來引入外部properties配置檔案的內容
resource: 引入類路徑下的資源
url: 引入網路路徑或者磁碟下的資源
-->
<properties resource="dbconfig.properties"></properties>
<environments default="development">
<!-- 配置 MyBatis 執行環境 -->
<environment id="development">
<!-- 配置 JDBC 事務管理 -->
<transactionManager type="JDBC"/>
<!-- POOLED 配置 JDBC 資料來源連線池 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!-- 註冊UserMapper.xml -->
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
</configuration>
settings
這是 MyBatis 中極為重要的調整設定,它們會改變 MyBatis 的執行時行為。
詳細文件:https://mybatis.org/mybatis-3/zh/configura...
<?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>
<!--
mybatis 可以使用properties來引入外部properties配置檔案的內容
resource: 引入類路徑下的資源
url: 引入網路路徑或者磁碟下的資源
-->
<properties resource="dbconfig.properties"></properties>
<settings>
<!--開啟自動駝峰命名規則(camel case)對映,即從經典資料庫列名 A_COLUMN 到經典 Java 屬性名 aColumn 的類似對映-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<environments default="development">
<!-- 配置 MyBatis 執行環境 -->
<environment id="development">
<!-- 配置 JDBC 事務管理 -->
<transactionManager type="JDBC"/>
<!-- POOLED 配置 JDBC 資料來源連線池 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!-- 註冊UserMapper.xml -->
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
</configuration>
typeAliases
型別別名是為 Java 型別設定一個短的名字。 它只和 XML 配置有關,存在的意義僅在於用來減少類完全限定名的冗餘。例如:
<typeAliases>
<typeAlias alias="Author" type="domain.blog.Author"/>
<typeAlias alias="Blog" type="domain.blog.Blog"/>
<typeAlias alias="Comment" type="domain.blog.Comment"/>
<typeAlias alias="Post" type="domain.blog.Post"/>
<typeAlias alias="Section" type="domain.blog.Section"/>
<typeAlias alias="Tag" type="domain.blog.Tag"/>
</typeAliases>
當這樣配置時,Blog
可以用在任何使用 domain.blog.Blog
的地方。
也可以指定一個包名,MyBatis 會在包名下面搜尋需要的 Java Bean,比如:
<typeAliases>
<package name="domain.blog"/>
</typeAliases>
每一個在包 domain.blog
中的 Java Bean,在沒有註解的情況下,會使用 Bean 的首字母小寫的非限定類名來作為它的別名。 比如 domain.blog.Author
的別名為author
;若有註解,則別名為其註解值。見下面的例子:
@Alias("author")
public class Author {
...
}
environments
environments裡面可以配置多個environment, 每一個environment指定一個唯一id來區分不同環境, 透過environments中的default屬性來指定某個環境
<environments default="development">
<!-- 配置 MyBatis 執行環境 -->
<environment id="development">
<!-- 配置 JDBC 事務管理 -->
<transactionManager type="JDBC"/>
<!-- POOLED 配置 JDBC 資料來源連線池 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
<environment id="test">
<!-- 配置 JDBC 事務管理 -->
<transactionManager type="JDBC"/>
<!-- POOLED 配置 JDBC 資料來源連線池 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc2.driver}"/>
<property name="url" value="${jdbc2.url}"/>
<property name="username" value="${jdbc2.username}"/>
<property name="password" value="${jdbc2.password}"/>
</dataSource>
</environment>
</environments>
mappers
註冊方式一
使用相對於類路徑的SQL對映檔案
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
註冊方式二
使用完全限定資源定位符(URL)
<mappers>
<mapper url="file:///var/mapper/UserMapper.xml"/>
</mappers>
註冊方式三
使用對映器介面實現類的完全限定類名.
這種情況需要將SQL對映檔案與介面類放在同一個資料夾下面並且檔名相同.
<mappers>
<mapper class="com.example.mybatis.mapper.UserMapper"/>
</mappers>
這裡需要注意的是, 預設情況下, maven不會將src/main/java下的xml檔案進行打包的,需要在pom中進行設定, 如下所示.
<build>
<resources>
<!--
預設情況下, src/main/java目錄下的非java檔案是不會被打包的,
如果src/main/java存在一些非java的配置檔案, 需要進行設定
-->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
註冊方式四
註冊某個包路徑下的所有介面.
這種情況需要將SQL對映檔案與介面類放在同一個資料夾下面並且檔名相同.
<mappers>
<!-- com.example.mybatis.mapper 為一個包路徑 -->
<package name="com.example.mybatis.mapper"/>
</mappers>
本作品採用《CC 協議》,轉載必須註明作者和本文連結