MyBaits基础核心配置

Posted 烟锁迷城

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBaits基础核心配置相关的知识,希望对你有一定的参考价值。

1、mybaits-config核心配置文件标签

将Mybaits集成到Spring中,需要添加一些配置文件。它的核心配置文件,就是mybaits-config.xml。

1.1、configuration标签

configuration标签是所有标签的父标签,它同时对应着mybaits的配置类configuration。

1.2、properties标签

properties是为了引入properties文件,用来添加数据库连接配置的标签。这个标签可以没有,但是mybaits-config.xml的数据库连接配置就需要硬编码。有个对应的properties文件,就可以将配置信息配置在properties文件中。

<properties resource="db.properties"></properties>

1.3、typeAliases标签

别名标签,可以为一个单独的对象指定一个别名,这样在Mybaits框架的xml文件里,所有需要写这个对象全路径名的位置就都可以用别名指代,

除了用户自定义的别名标签,Mybaits也定义了一些别名,这些别名映射都放在TypeAliasRegistry类中

<typeAliases>
    <typeAlias alias="user" type="com.my.li.bean.User"/>
</typeAliases>

1.4、typeHandler标签

在TypeHandlerRegistry类中有数据库类型与java数据类型转换的方法,下载源码后,重新查看,可以看到在这个类中,所有类型的handler都继承了BaseTypeHandler来实现类型转换。如果想要做一些特殊的转换动作就需要先写一个自定义handler,继承BaseTypeHandler,重写转换方法并在typeHandler标签中加入。

<typeHandlers>
    <typeHandler handler="com.my.li.handler.MyTypeHandler"/>
</typeHandlers>

定义完成后,要在需要的字段后使用typeHandler来表明使用的handler。

<resultMap id="BaseResultMap" type="com.my.li.bean.User">
    <id column="user_id" jdbcType="BIGINT" property="userId" />
    <result column="user_name" jdbcType="VARCHAR" property="userName" 
                        typeHandler="com.my.li.handler.MyTypeHandler"/>
    <result column="user_age" jdbcType="INTEGER" property="userAge" />
    <result column="user_sex" jdbcType="INTEGER" property="userSex" />
</resultMap>

1.5、objectFactory标签

ObjectFactory接口内有四个方法,这是Mybaits用来创建对应对象的方法,它有一个默认的实现类,DefaultObjectFactory。如果开发者想要在创建对象时使用一些其他操作,可以通过实现ObjectHandler或继承DefaultObjectFactory的方式自定义一个类,并且在ObjectHandler标签中进行声明。

在objectHandler标签下还有property子标签,可以定义一些key-value的键值对

<objectFactory type="com.my.li.factory.MyObjectFactory">
    <property name="test" value="one"/>
</objectFactory>

1.6、plugins标签

插件标签,可以用来扩展Mybaits功能,只能拦截四大插件中的关键性方法。定义多个插件时,插件的执行顺序是自下而上的。

<plugins>
    <plugin interceptor="com.my.li.interceptor.SQLInterceptor">
        <property name="test" value="one"/>
    </plugin>
    <plugin interceptor="com.my.li.interceptor.PageInterceptor"/>
</plugins>

1.7、environments标签

environments标签环境配置,用于配制数据库环境,每一个environment标签都代表一个数据源,transactionManager负责配置事务,datasource标签代表数据源,POOLED代表使用连接池,UNPOOLED代表不使用连接池。property代表数据库连接配置

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

1.8、mappers标签

指定启动路径文件,可以指定

  1. 类路径资源引用
  2. 完全限定资源定位符
  3. 使用映射器接口实现类的完全限定类名
  4. 将包内的映射器接口实现全部注册为映射器
<mappers>
    <mapper resource="BlogMapper.xml"/>
    <mapper resource="BlogMapperExt.xml"/>
</mappers>

1.9、settings标签

1.9.1、cacheEnabled

决定工程中是否开启二级缓存

1.9.2、localCacheScope

一级缓存工作范围

1.9.3、lazyLoadingEnabled

lazyLoadingEnabled = false,则禁用延迟加载,会级联加载所有关联对象的数据
lazyLoadingEnabled = true,默认情况下mybatis 是按层级延时加载的。

1.9.4、laggressiveLazyLoading

aggressiveLazyLoading = true,mybatis 是按层级延时加载
aggressiveLazyLoading = false,mybatis 按需求加载。

1.9.5、lazyLoadTriggerMethods

延迟加载

1.9.6、defaultExecutorType

执行器类型,SIMPLE普通执行器,REUSE可重用的执行器,BATCH批量操作数据

1.9.7、logImpl

日志实现

2、Mapper映射文件标签

2.1、cache

对给定命名空间的缓存配置

2.2、cache-ref

对其他命名空间缓存配置的引用

2.3、resultMap

用来描述如何从数据库结果集中加载对象

2.4、sql

可被其他语句引用的可重用SQL语句

2.5、insert

映射插入语句

2.6、update

映射更新语句

2.7、delete

映射删除语句

2.8、select

映射查找语句

以上是关于MyBaits基础核心配置的主要内容,如果未能解决你的问题,请参考以下文章

MyBaits的基本要素-------核心配置文件

Mybaits-Plus插入核心代码

Mybaits-Plus插入核心代码

SSM整合

Mybaits的批量操作包括批量删除 批量增加和批量更新

mybaits-plus常见配置