Mybatis的全局配置文件标签

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38409944/article/details/82466913

前言:

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">

注意:
xml配置文件中 可以根据约束添加xml中的标签

可以通过ctrl+/显示可添加的标签。适用于Eclipse


标签1:properties

不常用 以后整个spring的时候有更好的方法
作用:
引用外部properties配置文件内容
属性:

resource 引用类路径下的资源
url:引入网络路径或者磁盘路径下的资源
<properties resource="dbconfig.properties"></properties>
    <environments default="development">
        <environment id="development">
            <transactionManager type="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>

标签2:settings标签包含很多重要的设置项

举例:开启二级缓存:

<settings>
        <setting name="cacheEnabled" value="true" />
</settings>

标签3: typeAliases 别名处理器 可以为java类型起别名 别名忽略大小写

原来:

<select id="getTeacherById" parameterType="integer" resultType="entity.Teacher">

ctrl+左键就可以定位到该类 其实比较方便
起了别名后就难找了
注意:
有个问题 typeAlias标签 还有位置问题 得放在proerties后面 而不是configuration后面

有三个方法起别名:
第一种:单个起别名

    <typeAliases>
        <typeAlias type="entity.Teacher" alias="ss"/>
    </typeAliases>

type是要为起别名的类型全类名 默认是类名的小写teacher
alias:是指新的别名

第二种:批量起别名

<typeAliases>   
        <package name="entity"/>
    </typeAliases>

package:为某个包下的所有类批量起别名
name:指定包名 以及下面所有的后代包的每一个类都起一个默认别名(类名小写)

第三种:使用注解
如果此时类名冲突怎么办?
使用@Alias注解为某个类指定新的别名:

@Alias("ss")
public class Teacher {

注意:得考虑是否起别名,有时候起别名反而更麻烦了


标签5:mappers:
作用:将sql映射文件绑定到全局配置中

<mappers>
        <package name="dao" />
</mappers>

标签6:插件标签:plugins (具体的后面博客会介绍)
作用:
可以拦截四大对象 Executor之类的 动态代理可以实现额外操作
举例:分页插件:

     <plugins>
     <plugin interceptor="com.github.pagehelper.PageInterceptor">
        <!-- 使用下面的方式配置参数,后面会有所有的参数介绍 -->
        <property name="param1" value="value1"/>
    </plugin>
     </plugins>

标签7:环境变量标签:environments
mybatis可以配置多种环境
属性default可以指定某种环境 如test测试和development开发快速切换

enviroment 配置一个具体的环信息 id代表当前标签唯一标识
必须有两个标签:

transactionManager:事务管理器 属性 type JDBC|MANAGED
dataSource:数据源 UNPOOLED|POOLED|JNDI

也可以自定义数据源。

不过environments是spring来配置的 不多了解了这里


标签8:自定义类型处理器:typeHandlers
使用自定义的类型处理器:可以修改枚举类保存获取数据库的值

<typeHandlers>
    <typeHandler handler="typehandler.DiyTypeHandler" javaType="entity.Status"/>
    </typeHandlers>

标签9:databaseIdProvider

作用:切换数据库类型

全局:
<environments default="dev_mysql">
    <environment id="dev_mysql">
        <transactionManager type="JDBC"></transactionManager>
        <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="dev_oracle">
        <transactionManager type="JDBC" />
        <dataSource type="POOLED">
            <property name="driver" value="${orcl.driver}" />
            <property name="url" value="${orcl.url}" />
            <property name="username" value="${orcl.username}" />
            <property name="password" value="${orcl.password}" />
        </dataSource>
    </environment>
</environments>
<!-- 5、databaseIdProvider:支持多数据库厂商的;
         type="DB_VENDOR":VendorDatabaseIdProvider
            作用就是得到数据库厂商的标识(驱动getDatabaseProductName()),mybatis就能根据数据库厂商标识来执行不同的sql;
            MySQL,Oracle,SQL Server,xxxx
      -->
    <databaseIdProvider type="DB_VENDOR">
        <!-- 为不同的数据库厂商起别名 -->
        <property name="MySQL" value="mysql"/>
        <property name="Oracle" value="oracle"/>
        <property name="SQL Server" value="sqlserver"/>
    </databaseIdProvider>

猜你喜欢

转载自blog.csdn.net/qq_38409944/article/details/82466913
今日推荐