MyBatis-核心配置文件

properties

用来定义属性及读取属性文件。

settings

这是 MyBatis 中极为重要的调整设置,它们会改变 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">
<configuration>
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
</configuration>

typeAliases

类型别名是为 Java 类型设置一个短的名字。

定义单个别名

<?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>
    <typeAliases>
        <typeAlias alias="Customer" type="top.it6666.domain.Customer"/>
    </typeAliases>
</configuration>

批量别名定义

<?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>
    <typeAliases>
        <!--
        批量别名定义,扫描整个包下的类,别名为类名(大小写不敏感)
        -->
        <package name="top.it6666.domain"/>
    </typeAliases>
</configuration>

如果当前包类与子包类重名, 会有异常, 可以在类上使用注解 @Alias("别名") 来解决重名异常问题。

typeHandlers

无论是 MyBatis 在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时, 都会用类型处理器将获取的值以合适的方式转换成 Java 类型,JDK1.8 之后实现全部的 JSR310 规范,日期时间处理上,我们可以使用 MyBatis 基于 JSR310(Date and Time API)编写的各种日期时间类型处理器,MyBatis3.4 以前的版本需要我们手动注册这些处理器,以后的版本都是自动注册的。

Plugins

插件是 MyBatis 提供的一个非常强大的机制,MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用,通过插件来修改 MyBatis 的一些核心行为。

Environments

MyBatis 可以配置多种环境,比如开发、测试和生产环境需要有不同的配置,每种环境使用一个 environment 标签进行配置并指定唯一标识符,可以通过 environments 标签中的 default 属性指定一个环境的标识符来快速的切换环境。

Environment 子标签

transactionManager 事务管理,Type 有以下取值。

  • JDBC:使用 JDBC 的提交和回滚设置,依赖于从数据源得到的连接来管理事务范围。
  • MANAGED:不提交或回滚一个连接、让容器来管理事务的整个生命周期,ManagedTransactionFactory。
  • 自定义:实现 TransactionFactory 接口,type = 全类名 / 别名。

dataSource 数据源,type 有以下取值

  • UNPOOLED:不使用连接池 UnpooledDataSourceFactory
  • POOLED:使用连接池 PooledDataSourceFactory
  • JNDI:在 EJB 或应用服务器这类容器中查找指定的数据源。
  • 自定义:实现 DataSourceFactory 接口,定义数据源的获取方式。

实际开发

实际开发中我们使用 Spring 管理数据源,并进行事务控制的配置来覆盖上述配置并进行事务控制的配置来覆盖上述配置。

databaseIDProvider

MyBatis 可以根据不同的数据库厂商执行不同的语句,可以通过 databaseIDProvider 标签来进行设置。

<?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>
    <databaseIdProvider type="DB_VENDOR">
        <property name="MYSQL" value="mysql"/>
        <property name="DB2" value="db2"/>
        <property name="Oracle" value="oracle"/>
        <property name="SQL Server" value="sqlserver"/>
    </databaseIdProvider>
</configuration>

例如查询所有。

mappers

<mapper resource=""/>:使用相对于类路径的资源。

<mapper class=""/>:使用 mapper 接口类路径,此种方法要求 mapper 接口名称和 mapper 映射文件名称相同,且放在同一个目录中。

<package name=""/>:指定包下的所有 mapper 接口,此种方法要求 mapper 接口名称和 mapper 映射文件名称相同,且放在同一个目录中。

posted @ 2021-03-25 13:31  BNTang  阅读(70)  评论(0)    收藏  举报