Mybatis的全局配置文件标签介绍(mybatis-config.xml)

Posted 南山南

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis的全局配置文件标签介绍(mybatis-config.xml)相关的知识,希望对你有一定的参考价值。

全局配置文件中本人只记录了常用的几个

 typeHandlers, objectFactory,objectWrapperFactory, reflectorFactory, plugins, databaseIdProvider

这几个只是作为了解,没做记录

mybatis-config.xml:

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE configuration
 3  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4  "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5 <configuration>
 6 
 7 <!-- 
 8 1:mybatis可以用properties引入外部properties文件内容
 9     resource:引入的是项目的类路径,即项目中的文件
10     url:引入的是网络路径或者是磁盘路径
11  -->
12 <properties resource="dbconfig.properties"></properties>
13 
14 <!-- 
15 2:settings标签含有很多重要的设置项
16 setting用来设置每一个设置项
17     name:设置项名
18     value:设置项值
19  -->
20  <settings>
21      <setting name="mapUnderscoreToCamelCase" value="true"/>
22  </settings>
23  
24 <!-- 
25 3:typeAliases别名处理器,可以为我们的java类型起别名(别名不区分大小写,也就是即使你制定了别名无论大小写,只要字母对的上就可以)
26     1)typeAlias为指定java类型起别名,
27         type:被指定的java类型全类名,默认别名是类名的小写(employee,此时mapper文件中用到的全类名都能写成此别名)
28         alias:指定全新别名
29     2)package为某包下以及该子包下的所有类起别名(默认别名是类名的小写)
30         name:指定包的全路径
31     3)当批量起别名的时候,若子包中有类名与父包中类名相同时,会发生冲突报错,
32           这时可以在冲突的bean文件中添加@Alias标签来制定冲突类别名;
33  -->
34 <typeAliases>
35     <typeAlias type="com.yinfu.mybatis.beans.Employee"/>
36     <!-- <package name="com.yinfu.mybatis.beans"/> -->
37 </typeAliases>
38  
39 <!-- 
40 4:environments环境配置  mybatis可以配置多种环境    default指定使用某种环境,他的值对应的是环境的id
41     environment配置一个具体的环境信息,(必须包含俩标签),id代表当前环境的唯一标识
42         transactionManager:事务管理器
43             type:事务管理器的类型两种:JDBC(JdbcTransactionFactory事务管理器)|MANAGED(ManagedTransactionFactory事务管理器),
44         dataSource:数据源
45             type:数据源类型
46  -->
47      <environments default="development">
48          <environment id="development">
49              <transactionManager type="JDBC"/>
50              <dataSource type="POOLED">
51                  <property name="driver" value="${jdbc.driver}"/>
52                  <property name="url" value="${jdbc.url}"/>
53                  <property name="username" value="${jdbc.username}"/>
54                  <property name="password" value="${jdbc.password}"/>
55              </dataSource>
56          </environment>
57      </environments>
58 
59 <!-- 
60 5:databaseIdProvider用来设置多数据库厂商(mysql,oracle,sqlServer等)
61     当配置环境中有其他数据库的链接配置,并且default来切换查询环境(用的那个数据库),
62     并且mapper文件中有对SQL语句指定查询环境的属性,这样mybatis可移植性大大增强
63  -->
64 <databaseIdProvider type="DB_VENDOR">
65     <!-- 为不同数据库厂商指定别名 -->
66     <property name="MySQL" value="mysql"/>
67     <property name="Oracle" value="oracle"/>
68 </databaseIdProvider>
69      
70      <!-- 寫好的的SQL映射文件(mapper文件)一定要注册到mybatis-config.xml中 -->
71  <!-- 
72 6:mappers:将SQL映射(mapper文件或mapper接口)注册到全局映射中(mybatis-config.xml)
73     [1]mapper:注册指定的sql映射
74         1)配置文件(mapper.xml文件)注册
75             resource:引入的是项目的类路径,即项目中的文件
76             url:引入的是网络路径或者是磁盘路径
77         2)接口注册
78             class:接口名全路径
79             ①有SQL映射文件(mapper.xml),映射文件名要与接口名同名,并且俩文件要在同一目录下;
80             ②没有SQL映射文件,利用注解将SQL语句写在接口中对应的方法上(@Select @Delete等)
81             推荐:比较重要的Dao接口用SQL映射文件的方式,不太重要的可以用注解的方式,但是注解修改了源代码;
82     [2]package:批量注册
83         name:包的全路径名称;
84             有SQL映射文件(mapper.xml),映射文件名要与接口名同名,并且俩文件一定要在同一包下
85 
86  -->
87      <mappers>
88      <mapper resource="com/yinfu/mybatis/dao/EmployeeMapper.xml"/>
89      </mappers>
90 </configuration>

对应的mapper映射文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <!-- 接口式编程,namespace对应的是接口的全类名 -->
<mapper namespace="com.yinfu.mybatis.dao.EmployeeMapper">
<!-- 
    接口式编程,id对应的是接口中的方法名
     databaseId是在mybatis-config.xml中databaseIdProvider标签中定义的
     即:这条SQL语句是运行在哪个数据库环境下的(mysql,oracle,sql severd等)
     此时程序是运行在mysql环境下的,指定了mysql数据库名的和没指定名称的都会执行,如果mapper文件
     存在两个相同id方法名的     两条SQL语句,mybatis会自动舍弃没指定数据库名的那条;
-->
    <select id="getObjById" resultType="employee" databaseId="mysql(数据库类型的别名)">
        select * from tbl_employee where id = #{id}
    </select>
</mapper>

对应的mapper接口:

 1 package com.yinfu.mybatis.dao;
 2 
 3 import com.yinfu.mybatis.beans.Employee;
 4 
 5 public interface EmployeeMapper {
 6 
 7     /**
 8      * 
 9      * 还有一种注解式mapper,没有对应的mapper.xml文件,而是将SQL语句写在了注解里
10      * 例:
11      *         @Select("select * from tbl_employee where id = #{id}")
12      *         public Employee getObjById(Integer id);
13      * 
14      * @param id
15      * @return
16      */
17     
18     public Employee getObjById(Integer id);
19 }

 

以上是关于Mybatis的全局配置文件标签介绍(mybatis-config.xml)的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis全局配置文件标签详解

mybatis之全局配置文件中的标签

[mybatis]全局配置文件标签顺序

java框架---MyBatis全局配置文件

mybatis全局配置文件

spring学习 六 spring与mybatis整合