MyBatis配置文件mybatis

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

MyBatis配置文件mybatis

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配置文件示例

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis//DTD Config 3.0//EN" ".dtd"><configuration><properties resource="db.properties" /><typeAliases><typeAlias type="com.example.User" alias="User" /></typeAliases><environments default="development"><environment id="development"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="{jdbc.username}" /><property name="password" value="

其中,properties元素引用了db.properties文件中的属性值。typeAliases元素将com.example.User映射成了User别名。environments元素配置了开发环境的数据源和事务管理器。mappers元素引用了UserMapper.xml映射文件。

3. 配置详解

3.1. properties元素的详细配置

properties元素用于配置属性,可以通过${}占位符引用属性值。properties元素支持多种配置方式,包括properties子元素、properties文件等。其中,db.properties文件包含jdbc.driver、jdbc.url、jdbc.username、jdbc.password属性值。

<properties resource="db.properties" />

<properties>

<property name="jdbc.driver" value="com.mysql.jdbc.Driver" />

<property name="jdbc.url" value="jdbc:mysql://localhost:3306/mybatis" />

<property name="jdbc.username" value="root" />

<property name="jdbc.password" value="123456" />

</properties>

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元素等。

<typeAliases>

<typeAlias type="com.example.User" alias="User" />

<package name="com.example.pojo" />

</typeAliases>

3.3. environments元素的详细配置

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

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

<environment id="production">

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

3.4. transactionManager元素

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

<transactionManager

type="[JDBC | MANAGED]"> <property name="..." value="..."/>

</transactionManager>

3.5. objectFactory元素的配置

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

<objectFactory type="com.example.MyObjectFactory">

<property name="property1" value="value1" />

<property name="property2" value="value2" />

</objectFactory>

3.6. databaseIdProvider元素的配置

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

<databaseIdProvider type="DB_VENDOR">

<property name="Oracle" value="oracle" />

<property name="MySQL" value="mysql" />

</databaseIdProvider>

3.7. bind元素的详细配置

bind元素用于绑定参数,可以在SQL使用#{name,javaType=int,jdbcType=INTEGER}

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

<select id="getUser" resultType="com.example.User">

<bind name="age" value="'20'" />

SELECT * FROM user WHERE age = #{age,javaType=int,jdbcType=INTEGER}

</select>

3.8. typeHandler元素的详细配置

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

<typeHandlers>

<typeHandler handler="com.example.MyTypeHandler"

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

</typeHandlers>

3.9. settings元素的详细配置

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

<settings>

<setting name="cacheEnabled" value="true" />

<setting name="lazyLoadingEnabled" value="true" />

<setting name="logImpl" value="LOG4J2" />

</settings>

3.10. plugins元素的详细配置

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

<plugins>

<plugin interceptor="com.example.MyPlugin">

<property name="property1" value="value1" />

<property name="property2" value="value2" />

</plugin>

</plugins>

3.11. mappers元素的详细配置

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

<mappers>

<mapper resource="com/example/mapper/UserMapper.xml" />

<mapper class="com.example.mapper.OrderMapper" />

<package name="com.example.mapper" />

</mappers>

3.11.1. 映射文件

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

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

<!DOCTYPE mapper PUBLIC "-//mybatis//DTD Mapper 3.0//EN" ".dtd">

<mapper namespace="com.example.mapper.UserMapper">

<!-- resultMap元素用于配置结果映射规则 -->

<resultMap id="userMap" type="com.example.User">

<id column="id" property="id" />

<result column="name" property="name" />

<result column="age" property="age" />

</resultMap>

<!-- select元素用于配置查询语句 -->

<select id="getUser" resultMap="userMap">

SELECT * FROM user WHERE id = #{id}

</select>

<!-- insert元素用于配置插入语句 -->

<insert id="addUser" parameterType="com.example.User">

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

</insert>

<!-- update元素用于配置更新语句 -->

<update id="updateUser" parameterType="com.example.User">

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

</update>

<!-- delete元素用于配置删除语句 -->

<delete id="deleteUser" parameterType="int">

DELETE FROM user WHERE id = #{id}

</delete>

</mapper>

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2023-03-09,如有侵权请联系 cloudcommunity@tencent 删除config配置入门事务mybatis

发布者:admin,转转请注明出处:http://www.yc00.com/web/1747896151a4701726.html

相关推荐

  • MyBatis配置文件mybatis

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

    9小时前
    40

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信