MyBatis配置文件mybatis

9574 研发动态 | 2026-02-17 02:10:19

1. 定义MyBatis的配置文件是一个XML文件,其默认名称为mybatis-config.xml,用于配置和定制化MyBatis的运行时行为。比如可以用于配置数据库连接、属性、类型别名、类型处理器、插件、环境配置、映射器(mapper.xml)等信息。

2. 配置概述2.1. 主要包括以下部分configuration元素:整个配置文件的根元素,包含多个子元素;

properties元素:用于配置属性,可以通过${}占位符引用属性值;

settings元素:用于配置MyBatis的全局设置,如缓存策略、延迟加载等;

typeAliases元素:用于配置类型别名,可以将Java类的全限定名映射成简短的别名,方便在XML文件中使用;

typeHandlers元素:用于配置类型处理器,可以将Java对象和数据库中的数据进行转换;

environments元素:用于配置环境,包括数据源和事务管理器;

mappers元素:用于配置Mapper接口,包括XML映射文件和注解方式的映射;

plugins元素:用于配置插件,可以在执行SQL语句前后进行一些自定义操作。

2.2. MyBatis配置文件示例

3.1.1.属性配置MyBatis的属性配置是一个properties文件,用于存储一些全局的配置参数。这些参数可以在MyBatis的配置文件中通过${key}的方式进行引用。在MyBatis中,属性配置文件的命名通常为mybatis.properties,位于类路径的根目录下,也可以通过在mybatis-config.xml中配置来指定属性配置文件的路径。属性配置文件的基本结构如下:

jdbc.driver=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/mybatis

jdbc.username=root

jdbc.password=123456

其中,jdbc.driver、jdbc.url、jdbc.username、jdbc.password是全局的配置参数,可以在MyBatis的配置文件中进行引用。

3.2. typeAliases元素的详细配置typeAliases元素用于配置类型别名,可以将Java类的全限定名映射成简短的别名,方便在XML文件中使用。typeAliases元素支持多种配置方式,包括typeAlias元素、package元素等。

3.3. environments元素的详细配置environments元素用于配置环境,包括数据源和事务管理器。environments元素可以配置多个环境,其中一个环境可以被指定为默认环境。每个环境包含一个transactionManager元素和一个dataSource元素。例如:

3.4. transactionManager元素

用于配置事务管理器,其中,type属性用于指定事务管理器的类型,包括JDBC和MANAGED两种类型。JDBC类型的事务管理器需要由应用程序自己处理事务的提交和回滚,而MANAGED类型的事务管理器则是由应用服务器来管理事务的提交和回滚。 在transactionManager元素中,可以使用property元素来设置其他相关属性。例如,可以设置事务的隔离级别、超时时间等。具体的属性设置可以参考MyBatis的官方文档。

type="[JDBC | MANAGED]">

3.5. objectFactory元素的配置objectFactory元素用于配置对象工厂,可以自定义对象的创建方式。其中,MyObjectFactory是自定义的对象工厂类,property1和property2是对象工厂类的属性。

3.6. databaseIdProvider元素的配置databaseIdProvider元素用于配置数据库厂商标识符,可以根据不同的数据库类型执行不同的SQL语句。其中,DB_VENDOR表示根据数据库厂商标识符进行匹配,Oracle和MySQL分别为两个数据库的标识符。

3.7. bind元素的详细配置bind元素用于绑定参数,可以在SQL使用#{name,javaType=int,jdbcType=INTEGER}

方式引用绑定参数的值。其中,#{age,javaType=int,jdbcType=INTEGER}表示引用绑定参数age的值,javaType表示参数的Java类型,jdbcType表示参数的JDBC类型

3.8. typeHandler元素的详细配置typeHandler元素用于配置类型处理器,可以将Java对象和数据库中的数据进行转换。typeHandler元素支持多种配置方式,包括class属性、javaType和jdbcType属性、handler属性等。例如:

javaType="java.lang.String" jdbcType="VARCHAR" />

3.9. settings元素的详细配置settings元素用于配置MyBatis的全局设置,如缓存策略、延迟加载等。settings元素包含多个子元素,如cacheEnabled、lazyLoadingEnabled、logImpl等。例如:

3.10. plugins元素的详细配置plugins元素用于配置插件,可以在执行SQL语句前后进行一些自定义操作。plugins元素包含多个子元素,每个子元素包含一个interceptor元素和一个property元素。其中,MyPlugin是自定义的插件类,property1和property2是插件类的属性:

3.11. mappers元素的详细配置mappers元素用于配置Mapper接口,包括XML映射文件和注解方式的映射。mappers元素支持多种配置方式,包括resource属性(引用XML映射文件)、class属性(引用Mapper接口)、package属性(扫描指定包下的所有Mapper接口)等。例如:

3.11.1. 映射文件MyBatis的映射文件是一个XML文件,用于配置SQL语句和结果映射规则。它将Java的POJO对象和数据库中的表进行映射,提供了CRUD操作的SQL语句和参数映射。在MyBatis中,映射文件的命名通常为Mapper.xml,位于类路径的某个目录下。映射文件的基本结构如下:

INSERT INTO user(name, age) VALUES(#{name}, #{age})

UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}

DELETE FROM user WHERE id = #{id}

其中,resultMap元素用于配置结果映射规则;select元素用于配置查询语句;insert元素用于配置插入语句;update元素用于配置更新语句;delete元素用于配置删除语句。