MyBatis——configuration

本文详细介绍了MyBatis的配置,包括properties、settings、typeAliases、typeHandler、ObjectFactory、plugins、environments、databaseIdProvider和mappers等,解析了各配置项的作用和用法,如properties的三种引用方式、settings的常用规则、typeAliases的别名定义以及数据源的选择等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、MyBatis配置

     <? xml version="1.0" encoding="utf-8"?>

     <configuration> <!-- 配置 -->
         <properties /> <!-- 属性 -->
         <settings /> <!-- 设置 -->
         <typeAliases /><!-- 别名 -->
         <typeHandlers /><!-- 类型转换器 -->
         <objectFactory /><!-- 对象工厂 -->
         <plugins /> <!-- 插件 -->
         <environments><!-- 配置环境 -->
            <environment><!-- 环境变量 -->
                <transactionManager /><!-- 事务管理器 -->
                <dataSource /><!-- 数据源 -->
            </environment>
         </environments>
         <databaseIdProvider /><!-- 数据库厂商标识 -->
         <mappers /><!-- 映射器 -->
    </configuration>

    MyBatis配置项的顺序不能颠倒。

1.1 properties

        properties属性可以给系统配置一些运行的参数,properties中的属性有resource和url,其中resource是引用类路径下资源而url是引用网络或者磁盘路径下的资源,其主要分为3中方式引用:

        1》property子元素   name和value属性

        2》properties文件

        3》 程序代码传递

       properties的3中引用方式的优先级,最优先的是使用程序传递的方式,其次是使用properties文件的方式,最后使用property子元素的方式,MyBatis会根据优先级来覆盖原先配置的属性值。

1.2 settings

      settings是MyBatis中最复杂的配置,它能深刻影响MyBatis底层运行,大部分情况下使用默认值便可以运行,只需修改一些常用的规则,比如自动映射、驼峰命名映射、级联规则、是否启动缓存、执行器(Executor)等

1.3 typeAliases

        typeAliases分为系统定义别名和自定义别名,在MyBatis中别名不区分大小写,其主要分为3中方式:

        1》typeAliase  type属性指定要起别名的类型全类名,默认别名就是类名小写 ;alias指定新别名

        2》package  为某个包下的所有类批量起别名,name属性指定包名(为当前包下以及下面所有后代包的每一个斗气一个默认的别名)

        3》@Alias注解   在类上注解,避免因为别名重名导致的异常

1.4 typeHandler

         在MyBatis中存在系统定义typeHandler和自定义typeHandler,MyBatis会根据javaType和数据库的jdbcType来决定采用哪个typeHandler处理这些转换规则。

1.5 ObjectFactory

        当创建结果集时,MyBatis会使用一个对象工厂来完成创建这个结果集实例,在默认情况下MyBatis会使用其定义的对象工厂——DefaultObjectFactory来完成对应的工作,也可以注册自定义的ObjectFactory。

1.6 plugins

 plugins主要插件分为Executor、ParameterHandler、ResultSetHandler、StatementHandler

1.7 environments

         在MyBatis中运行环境主要的作用是配置数据库信息,它可以配置多个数据库,它下面又分为两个可配置的元素:事务管理器(transactionManager)和数据源(dataSource)。

1.7.1 transactionManager

       transactionManager提供了两个实现类,它需要实现接口Transaction。

于是事务管理器配置成为以下两种方式:

<transactionManager type="JDBC"/>

<transactionManager type="MANAGED"/>


public interface Transaction{

    Connection getConnection() throws SQLException;

    void commit() throws SQLException;

    void rollback() throws SQLException;

    void close() throws SQLException;

    Integer getTimeout() throws SQLException;


}

1.7.2 dataSource

    dataSource中有三种数据源分别是UNPOOLED、POOLED和JNDI

    UNPOOLED采用非数据库池的管理方式,每次请求都会打开一个新的数据库连接,所以创建会比较慢。

    POOLED利用池的概念将JDBC的Connection对象组织起来,它开始会有一些空置,并且已经连接好的数据库连接,所以请求时,无须再建立和验证。

1.8 databaseIdProvider


<databaseIdProvider type="DB_VENDOR">
    <property name="Oracle" value="oracle"/>
    <property name="MySQL" value="mysql"/>
    <property name="DB2" value="db2"/>
</databaseIdProvider>

1.9 mappers

将sql映射注册到全局配置文件中,其中有四种方式:

   1》 resource 引用类路径下的sql映射文件

   2》 url 引用网络路径或者磁盘路径下的sql映射文件

   3》 class 引用接口的全路径 ,如果有sql映射文件时必须和接口同名并且放在同一个目录下,如果没有sql映射文件时可以使用注解形式。

   4》package用包名引入引射器,如果有sql映射文件时必须和接口同名并且放在同一个目录下,如果没有sql映射文件时可以使用注解形式。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值