Mybatis 属性配置

本文深入解析MyBatis配置文件的各个元素,包括properties、settings、typeAliases、typeHandlers、plugins等,阐述如何通过配置实现数据库连接、参数处理、结果集映射等功能,以及如何针对不同数据库进行兼容性配置。

 

属性

Mybatis configuration包含属性及作用介绍如下

属性列表:

settings 标签包含多个设置项

  1. properties 引入外部配置
  2. mapUnderscoreToCamelCaseEnables 设置下划转驼峰命名

 

  1. 属性配置示例:

  2. properties:

  3. <?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:类路径资源
                url:磁盘路径资源或者网络资源
                将 dataSource 相关的配置独立于 jdbc.properties,以 properties 的方式将其引入;使配置清易辩
        -->
        <properties resource="conf/jdbc.properties"></properties>
        <environments default="development">
            <environment id="development">
                <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>
        </environments>
        <mappers>
            <mapper resource="mapper/ActivityMapper.xml"></mapper>
        </mappers>
    </configuration>
  4. mapUnderscoreToCamelCaseEnables:
  5.     <!--
                mapUnderscoreToCamelCaseEnables 设置下划线转驼峰命名
        -->
        <settings>
            <setting name="mapUnderscoreToCamelCaseEnables" value="true"/>
        </settings>
    
  6. typeAliases:

  7.      <!-- typeAlias 单个指定别名 -->
         <typeAliases>
            <!--
                typeAlias:为指定的Java类型设置别名
                    type:指定Java类型
                    alias:指定别名,如果不指定默认为指定Java类型类名小写
            -->
            <typeAlias type="java.lang.String" alias=""/>
        </typeAliases>
    
        <!-- 批量指定别名 -->
        
        <typeAliases>
            <!--
                package 可以批量的指定别名
                    name:指定批量别名的包路径
                    使用 @Alias 注解为某个类指定别名
            -->
            <package name="test"/>
        </typeAliases>
  8. typeHeadlers:

  9. 类型处理器,在jdk实现了 jsr310 标准后时间类库更加丰富;Mybatis使用typeHeadler可以完成Java类型与数据库类型的兼容,但是在Mybatis 3.x 之后这些都已经封装好好了;无需开发者参与。
  10. plugins:

  11. Executor:

  12. Executor(update,query,flushStatements,commit,rollback,getTransaction,close,isClosed) CRUD 执行器
  13. ParameterHandler:

  14. ParameterHandler(getParameterObject,setParameters) sql 语句设置参数
  15. ResultSetHandler:

  16. ResultHandler(handleResultSets,handleOutPutParameters) 结果集处理器,加结果集封装到实体
  17. StatementHandler:

  18. StatementHandler(prepare,parametersize,batch,update,query) sql 语句处理器
  19. environments:
  20. environments(环境):包含多个 environment,使用 default 指定一个环境
        environment(具体环境配置信息,其中 id 属性表示当前环境的唯一标识):
            transactionMamanger(事务管理器):
                type(事务管理器类型):[JDBC(jdbcTransactionFactory) | MANAGER(managerTransactionFactory)]
                    自定义事务管理,实现 TransactionFacotry,type 指定实现 TransactionFacttory 的实现全类名
    
            dataSource(数据源):
                type:[UNPOOLED(unPooledDataSourceFactory)| POOLED(pooledDataSourceFactory)| JNDI(jndiDataSourceFactory)]
                    自定义数据源:
                        实现 DataSourceFactory 接口,type 配置 DataSourceFacotry 实现类的全类名
    
  21. dataBaseIdProvider:
  22.  <!-- 映射文件 -->
    <!-- databaseId 指定数据库厂商的别名 -->
    <select id="selectUserById" parameterType="java.lang.Long" resultType="test.UserEntity" databaseId="mysql">
        select user_id as userId,username,password,email,mobile,status,create_user_id as         
        createUserId,create_time as createTime,dept_id as deptId from sys_user where user_id         
        = #{userId}
    </select>
    
    
        <!-- Mybatis 全局配置文件 -->
        <!--
            支持多数据库厂商,不同数据库 sql 的兼容;
                type="DB_VENDOR" VendorDataBaseIdProvider
                获取数据厂商的标识(驱动getDatabaseProductName())
        -->
        <databaseIdProvider type="DB_VENDOR">
            <!-- 为不同数据厂商指定别名 -->
            <property name="MySql" value="mysql"/>
            <property name="Oracle" value="oracle"/>
        </databaseIdProvider>
  23. mappder:
  24.     <!--
            mappers 将sql映射注册到全局配置中
                resource:引入类路径下的映射文件
                url:引用磁盘路径或者网络路径下的映射文件
                class:引用接口(注册),使用这种方式注册需要 mapper 配文件放在接口同目录下并且与接口            
                同名
         -->
        <mappers>
            <mapper resource="mapper/ActivityMapper.xml"></mapper>
        </mappers>
  25.  
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值