MyBatis--主配置檔案詳解
MyBatis--主配置檔案詳解
主配置檔案可以隨便命名,其主要完成以下幾個功能:
- 註冊存放DB連線四要素的屬性檔案
- 註冊實體類的許可權定性類名的別名
- 配置MyBatis執行環境,即資料來源與事務管理器
- 註冊對映檔案
MyBatis.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="jdbc.properties"/>
<!-- 配置MyBatis執行環境 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.dirver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.user}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!-- 註冊對映檔案 -->
<mappers>
<mapper resource="com/hcx/dao/mapper.xml"/>
<!-- <mapper resource="com/hcx/dao/mapper2.xml"/> -->
</mappers>
</configuration>
一、註冊DB連線四要素屬性檔案
<!-- 註冊DB連線四要素的屬性檔案 -->
<properties resource="jdbc.properties"/>
二、指定實體類許可權定性類名的別名
1.<package/>方式
一般使用<package/>方式,這樣做的好處是會將該包中年所有實體類的簡單類名指定為別名。
<!--配置別名-->
<typeAliases>
<package name="com.hcx.beans"/>
</typeAliases>
2.通過<typealias/>指定。
- type:許可權定性類名
- alias:別名
該方式的好處是,可以指定別名為簡單類名以外的其他名稱。當然,弊端是,必須逐個指定,比較繁瑣。
<!-- 註冊類的別名 -->
<typeAliases>
<typeAlias type="com.hcx.beans.Student" alias="Student"/>
</typeAliases>
3.使用MyBatis內建的型別別名
基本型別:
常用包裝型別:
三、配置MyBatis的執行環境
主要是配置資料來源和事務管理器
1.<environments/>標籤
在<environments/>中可以包含多個執行環境<environment/>,但其default屬性指定了當前MyBatis執行時所選擇使用的環境。
2.<transactionManager/>標籤
<!-- 使用jdbc事務管理 -->
<transactionManager type="JDBC" />
該標籤用於指定MyBatis所使用的事務管理器。MyBatis支援兩種事務管理器;JDBC與MANAGED
- JDBC:使用jdbc事務管理機制。即,通過connection的commit()方法提交,通過rollback方法回滾。但預設情況下,MyBatis將自動提交功能關閉了,改為了手動提交。即程式中需要顯式的對事務進行提交或回滾。
- MANAGED:由容器來管理事務的整個生命週期(如Spring容器)
3.<dataSource/>標籤
該標籤用於配置MyBatis使用的資料來源型別與資料庫連線基本屬性。常見型別有:UNPOOLED、POOLED、JDNI等
- UNPOOLED:不使用連線池。即每次請求,都會為其建立一個DB連線,使用完畢後,會馬上將此連線關閉。
- POOLED:使用資料庫連線池來維護連線
- JDNI:資料來源可以定義到應用的外部,通過JDNI容器獲取資料庫連線。
程式碼:
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
若要從屬性檔案中讀取DB連線四要素資訊,則使用如下方式:
<!-- 資料庫連線池 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.dirver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.user}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
四、指定對映檔案
指定對映檔案的方式有多種,但所有的方式,都是指定在<mappers/>標籤中的。
1.<mapper resource="">方式
<!-- 註冊對映檔案 -->
<mappers>
<mapper resource="com/hcx/dao/mapper.xml"/>
<mapper resource="com/hcx/dao/mapper2.xml"/>
</mappers>
2.<mapper url="">方式
<mappers>
<mapper url="file:///E:\workspace\mybatisPrimary\src\com\hcx\dao\IStudentDao.xml"/>
</mappers>
該方式的好處是,可以將對映檔案放在本地或網路的任意位置,通過url地址即可直接訪問。當通常對映檔案是存放在當前應用中的,所以該方式不常用。
3.<mapper class="">方式
class屬性值為dao介面的全類名
<mappers>
<mapper class="com.hcx.dao.IStudentDao"/>
</mappers>
該方式的使用,需要滿足以下幾個要求:
- 對映檔名要與dao介面名相同
- 對映檔案要與介面在同一包中
- 對映檔案中<mapper/>的namespace屬性值為dao介面的全類名
4.<package name="">方式
當對映檔案較多時,也可以使用如下形式。其中package的naem屬性指定對映檔案所存放的包。
<mappers>
<package name="com.hcx.dao"/>
</mappers>
但,這種方式的使用需要滿足以下條件:
- dao使用mapper動態代理實現
- 對映檔名要與dao幾口名相同
- 對映檔案要與介面在同一包中
- 對映檔案中<mapper/>的namespace屬性值為dao介面的全類名
作者:JS_HCX
連結:https://www.jianshu.com/p/4191d2de04b7
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。
相關文章
- Nginx 伺服器主配置檔案詳解Nginx伺服器
- Apache主配置檔案httpd.conf 詳解Apachehttpd
- redis 配置檔案詳解Redis
- haproxy配置檔案詳解
- redis配置檔案詳解Redis
- SSH配置檔案詳解
- zookeeper配置檔案詳解
- nginx配置檔案詳解Nginx
- WCF配置檔案詳解
- Nginx的配置檔案詳解Nginx
- vim的配置檔案詳解
- Hibernate配置檔案詳解
- BIND配置檔案詳解(三)
- Spring 配置檔案詳解Spring
- vsftpd配置檔案詳解FTP
- Nagios配置檔案詳解iOS
- spring配置檔案詳解Spring
- Nginx 配置檔案引數詳解Nginx
- 屬性配置檔案詳解(2)
- Docker Compose 配置檔案詳解Docker
- influx詳解(二):配置檔案UX
- Struts配置檔案詳細講解
- redis配置檔案引數詳解Redis
- Mysql配置檔案my.ini配置項詳解MySql
- MyBatis 核心配置檔案詳細內容詳解MyBatis
- linux的啟動配置檔案inittab檔案詳解Linux
- PHP配置檔案詳解php.iniPHP
- nginx.conf 配置檔案詳解Nginx
- Tomcat 的 Server 檔案配置詳解!!!TomcatServer
- linux網路卡配置檔案詳解Linux
- Python之ini配置檔案詳解Python
- git config配置檔案詳解Git
- Maven pom.xml檔案配置詳解MavenXML
- MySQL 配置檔案 (my.ini) 詳解MySql
- sysctl.conf檔案配置詳解
- compose配置檔案引數詳解
- resin配置檔案的詳細解釋
- log4j配置檔案詳解