前面說了搭建MyBatis環境,本文是對MyBatis使用時的核心組態檔的一些說明
目錄- environments
- transactionManager
- DataSource
- 引入jdbc.properties
- typeAliases
- settings
- 下劃線轉駝峰
- 延遲加載
- Mappers
- IDEA 核心配置模板及解釋
environments
可以配置多個環境,比如測驗環境和開發環境 ; 使用id區分,不能重復,
<environments default="development">
<environment id="development">
<!-- 事務管理器 -->
<transactionManager type="JDBC"></transactionManager>
<!-- 資料源 即連接池-->
<dataSource type="POOLED">
<property name="driver" value="https://www.cnblogs.com/kohler21/p/com.mysql.cj.jdbc.Driver"/>
<property name="url" value="https://www.cnblogs.com/kohler21/p/jdbc:mysql://localhost:3306/mybatis?serverTimezone=GMT"/>
<property name="username" value="https://www.cnblogs.com/kohler21/p/root"/>
<property name="password" value="https://www.cnblogs.com/kohler21/p/123456"/>
</dataSource>
</environment>
<environment id="test">
<!-- 事務管理器 -->
<transactionManager type="JDBC"></transactionManager>
<!-- 資料源 即連接池-->
<dataSource type="POOLED">
<property name="driver" value="https://www.cnblogs.com/kohler21/p/com.mysql.cj.jdbc.Driver"/>
<property name="url" value="https://www.cnblogs.com/kohler21/p/jdbc:mysql://localhost:3306/mybatis?serverTimezone=GMT"/>
<property name="username" value="https://www.cnblogs.com/kohler21/p/root"/>
<property name="password" value="https://www.cnblogs.com/kohler21/p/123456"/>
</dataSource>
</environment>
</environments>
transactionManager
事務管理器,使用type來設定事務管理方式,
type
JDBC:表示使用JDBC原生事務管理方式,即可以手動的開啟關閉事務,手動的提交和回滾,
MANAGED:被管理的,例如交給Spring管理,
DataSource
設定資料源,使用type 設定資料源的型別,
type
POOLED:使用資料庫連接池
UNPOOLED:不使用資料庫連接池,鏈接直接重新創建
JNDI:表示使用背景關系當中的資料源(了解即可)
引入jdbc.properties
resources 下創建 jdbc.properties 檔案
jdbc.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=GMT
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.user=root
jdbc.password=123456
核心組態檔當中引入
<?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 檔案 -->
<properties resource="jdbc.properties"></properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="https://www.cnblogs.com/kohler21/p/${jdbc.driver}"/>
<property name="url" value="https://www.cnblogs.com/kohler21/p/${jdbc.url}"/>
<property name="username" value="https://www.cnblogs.com/kohler21/p/${jdbc.user}"/>
<property name="password" value="https://www.cnblogs.com/kohler21/p/${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/kailong/mappers/UserMapper.xml"></mapper>
</mappers>
</configuration>
typeAliases
型別別名,在 Mapper 的 resultType 屬性中可以使用簡單型別別名
<?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 檔案 -->
<properties resource="jdbc.properties"></properties>
<!-- 別名 -->
<typeAliases>
<typeAlias type="com.kailong.pojo.User" alias="user"></typeAlias>
<!-- 也可以指定一個包下面的別名, 且不區分大小寫, 跟上方 typeLias 不能同時使用 -->
<package name="com.kailong.pojo"></package>
</typeAliases>
<!-- ... -->
</configuration>
在 Mapper.xml 檔案中使用
<select id="getAllUser" resultType="user">
SELECT * FROM t_user;
</select>
settings
核心全域設定, 下面是幾個常用的
下劃線轉駝峰
<settings>
<!-- 下劃線 自動映射 駝峰 -->
<setting name="mapUnderscoreToCamelCase" value="https://www.cnblogs.com/kohler21/p/true"/>
</settings>
延遲加載
如果某個查詢不想使用懶加載,則在 association 和 collection 標簽當中設定 fetchType 即可,
<settings>
<!-- 延遲加載
LazyLoadingEnabled: true,開啟延遲加載
aggressiveLazyLoading: false, 開啟按需加載
-->
<setting name="lazyLoadingEnabled" value="https://www.cnblogs.com/kohler21/p/true"/>
<setting name="aggressiveLazyLoading" value="https://www.cnblogs.com/kohler21/p/false"/>
</settings>
Mappers
引入 映射檔案的, 分為單個引入 和 包掃描的方式
<mappers>
<mapper resource="mappers/UserMapper.xml"></mapper>
<!--
包掃描方式, 兩個條件
1. Mapper 介面和 Mapper.xml 必須在一個包下
2. Mapper 介面必須和 Mapper.xml 名字一致
-->
<package name="com.kailong.mapper"/>
</mappers>
注意:resouces 下創建對應的目錄放mapper.xml 檔案
IDEA 核心配置模板及解釋
<?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?,settings?,typeAliases?,typeHandlers?,
objectFactory?,objectWrapperFactory?,reflectorFactory?,
plugins?,environments?,databaseIdProvider?,mappers?
-->
<!--引入properties檔案-->
<properties resource="jdbc.properties" />
<!--設定型別別名-->
<typeAliases>
<!--
typeAlias:設定某個型別的別名
屬性:
type:設定需要設定別名的型別
alias:設定某個型別的別名,若不設定該屬性,那么該型別擁有默認的別名,即類名
且不區分大小寫
-->
<!--<typeAlias type="com.kailong.pojo.User"></typeAlias>-->
<!--以包為單位,將包下所有的型別設定默認的型別別名,即類名且不區分大小寫-->
<package name="com.kailong.pojo"/>
</typeAliases>
<!--
environments:配置多個連接資料庫的環境
屬性:
default:設定默認使用的環境的id
-->
<environments default="development">
<!--
environment:配置某個具體的環境
屬性:
id:表示連接資料庫的環境的唯一標識,不能重復
-->
<environment id="development">
<!--
transactionManager:設定事務管理方式
屬性:
type="JDBC|MANAGED"
JDBC:表示當前環境中,執行SQL時,使用的是JDBC中原生的事務管理方式,事
務的提交或回滾需要手動處理
MANAGED:被管理,例如Spring
-->
<transactionManager type="JDBC"/>
<!--
dataSource:配置資料源
屬性:
type:設定資料源的型別
type="POOLED|UNPOOLED|JNDI"
POOLED:表示使用資料庫連接池快取資料庫連接
UNPOOLED:表示不使用資料庫連接池
JNDI:表示使用背景關系中的資料源
-->
<dataSource type="POOLED">
<!--設定連接資料庫的驅動-->
<property name="driver" value="https://www.cnblogs.com/kohler21/p/${jdbc.driver}"/>
<!--設定連接資料庫的連接地址-->
<property name="url" value="https://www.cnblogs.com/kohler21/p/${jdbc.url}"/>
<!--設定連接資料庫的用戶名-->
<property name="username" value="https://www.cnblogs.com/kohler21/p/${jdbc.username}"/>
<!--設定連接資料庫的密碼-->
<property name="password" value="https://www.cnblogs.com/kohler21/p/${jdbc.password}"/>
</dataSource>
</environment>
<environment id="test">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="https://www.cnblogs.com/kohler21/p/com.mysql.cj.jdbc.Driver"/>
<property name="url"
value="https://www.cnblogs.com/kohler21/p/jdbc:mysql://localhost:3306/mybatis?serverTimezone=GMT"/>
<property name="username" value="https://www.cnblogs.com/kohler21/p/root"/>
<property name="password" value="https://www.cnblogs.com/kohler21/p/123456"/>
</dataSource>
</environment>
</environments>
<!--引入映射檔案-->
<mappers>
<!--<mapper resource="mappers/UserMapper.xml"/>-->
<!--
以包為單位引入映射檔案
要求:
1、mapper介面所在的包要和映射檔案所在的包一致
2、mapper介面要和映射檔案的名字一致
-->
<package name="com.kailong.mapper"/>
</mappers>
</configuration>
公眾號本文地址:https://mp.weixin.qq.com/s/zfVhUXCo_N43rB-THvSeaw
歡迎關注公眾號:愚生淺末,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/540243.html
標籤:其他
