MyBatis Xml 配置详解

本文详细解析了MyBatis的XML配置,包括属性(properties)、设置(settings)、类型别名(typeAliases)、类型处理器(typeHandlers)、环境配置(environments)、数据库厂商标识(databaseIdProvider)和映射器(mappers)等核心配置,阐述了各项配置的作用和用法,旨在帮助读者理解和掌握MyBatis的配置技巧。
摘要由CSDN通过智能技术生成
<!-- mybatis config must config order by this index -->
properties,
settings,
typeAliases,
typeHandlers,
objectFactory,
objectWrapperFactory,
reflectorFactory,
plugins,
environments,
databaseIdProvider,
mappers 

        在XML配置文件中,配置项的排列顺序是有要求的,如上所排列,如果顺序放错,xml配置文件会提示报错(idea) 

前言

        一般使用,常见配置主要是 properties,settings, environments,mappers 四种,配置好后,便可以创建简单的测试和研究MyBatis的具体的使用方法。

提供测试用的简单的配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/schema/mybatis-3-config.dtd">
<configuration>
    <!-- define property for next rows can use it as global -->
    <properties>
        <property name="classDriver" value="com.mysql.jdbc.Driver"/>
        <property name="url_aux"
                  value="jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&amp;useSSL=false"/>
        <property name="username" value="root"/>
        <property name="pwd" value="root"/>
        <property name="log-stdout" value="STDOUT_LOGGING"/>
    </properties>

    <settings>
        <setting name="logImpl" value="${log-stdout}"/>
    </settings>

    <!-- TODO 此处选择连接的DB, 设置default属性就行了 -->
    <environments default="def">

        <environment id="def">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="UNPOOLED">
                <property name="driver" value="${classDriver}"/>
                <property name="url" value="${url_aux}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${pwd}"/>
            </dataSource>
        </environment>

    </environments>



    <!-- TODO 手动添加mapper,或者添加资源拷贝然后使用package的方式来指定mapper位置(Xml和mapper放一起,名称保持一致) -->
    <mappers>
        <!-- define mapper xml file relative path -->
        <package name="com.demo.sys.mapper"/>
    </mappers>
</configuration>

1 属性(properties)

这些属性可以在外部进行配置,并可以进行动态替换。你既可以在典型的 Java 属性文件中配置这些属性,也可以在 properties 元素的子元素中设置。

例如:${project.resources}/org/mybatis/example/config.properties

<properties resource=“org/mybatis/example/config.properties”>
    <property name=“username” value=“root”/>
    <property name=“password” value=“123456”/>
</properties>

 

设置好的属性可以在整个配置文件中用来替换需要动态配置的属性值。比如:

 

<dataSource type=“POOLED”>
    <property name="driver" value="{driver}"/>
    <property name="url" value="driver"/>
    <property name="url"value="{url}"/>
    <property name="username" value="{username}"/>
    <property name="password" value="username"/>
    <property name="password"value="{password}"/>
</dataSource>

如果一个属性在不只一个地方进行了配置,那么,MyBatis 将按照下面的顺序来加载: 首先读取在 properties 元素体内指定的属性。 然后根据 properties 元素中的 resource 属性读取类路径下属性文件。 最后读取作为方法参数传递的属性,并覆盖之前读取过的同名属性。

<!-- MyBatis 实例启动后会按照下面的顺序来查找和配置属性 -->

第一优先:
    在代码中直接通过properties传入build方法。
第二优先:
    通过resource或者url读取到的properties文件中属性。
第三优先:
    直接在properties内的子标签property内定义的属性。

2 设置(settings)

        这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。 下表描述了设置中各项设置的含义、默认值等。

        一个配置完整的 settings 元素的示例如下:

<settings>
    <setting name="cacheEnabled" value="true"/>
    <setting name="lazyLoadingEnabled" value="true"/>
    <setting name="multipleResultSetsEnabled" value="true"/>
    <setting name="useColumnLabel" value="true"/>
    <setting name="useGeneratedKeys" value="false"/>
    <setting name="autoMappingBehavior" value="PARTIAL"/>
    <setting name="autoMappingUnknownColumnBehavior" value="WARNING"/>
    <setting name="defaultExecutorType" value="SIMPLE"/>
    <setting name="defaultStatementTimeout" value="25"/>
    <setting name="defaultFetchSize" value="100"/>
    <setting name="safeRowBoundsEnabled" value="false"/>
    <setting name="mapUnderscoreToCamelCase" value="false"/>
    <setting name="localCacheScope" value="SESSION
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mybatis是一种Java持久化框架,它可以将Java对象映射到数据库中的表中。Mybatis配置文件主要包括两个部分:mybatis-config.xml和mapper.xml。其中mapper.xmlMybatis的核心配置文件,它定义了SQL语句、映射关系、参数映射等信息,下面详细介绍mapper.xml文件的各个部分。 1、mapper.xml的命名空间 每个mapper.xml文件都应该设置一个命名空间,命名空间用来定义映射的SQL语句和参数映射。命名空间的格式为:mapper namespace="com.xxx.mapper.XxxMapper",其中com.xxx.mapper是mapper接口所在的包名,XxxMapper是mapper接口的类名。 2、映射SQL语句 在mapper.xml中,可以定义各种SQL语句,例如查询、插入、更新和删除等。SQL语句的格式为<select|insert|update|delete>,其中<select>表示查询语句,<insert>表示插入语句,<update>表示更新语句,<delete>表示删除语句。具体的SQL语句可以根据需要自行定义,例如: <select id="selectUserById" parameterType="int" resultType="com.xxx.model.User"> select * from user where id=#{id} </select> 在上面的例子中,id表示SQL语句的唯一标识符,parameterType表示传入参数的类型,resultType表示返回结果的类型。 3、参数映射 在mapper.xml中,可以定义参数映射,将Java对象映射到SQL语句中的参数,例如: <select id="selectUserByName" parameterType="java.lang.String" resultType="com.xxx.model.User"> select * from user where name=#{name} </select> 在上面的例子中,parameterType表示传入参数的类型,#{name}表示将Java对象中的name属性映射到SQL语句中的参数。 4、结果集映射 在mapper.xml中,可以定义结果集映射,将SQL语句返回的结果封装成Java对象,例如: <select id="selectAllUser" resultType="com.xxx.model.User"> select * from user </select> 在上面的例子中,resultType表示返回结果的类型,Mybatis会将SQL语句返回的结果封装成com.xxx.model.User对象。 5、动态SQL语句 在mapper.xml中,可以使用动态SQL语句来构建复杂的SQL语句。动态SQL语句可以根据不同的条件来生成不同的SQL语句,例如: <select id="selectUser" parameterType="com.xxx.model.User" resultType="com.xxx.model.User"> select * from user where 1=1 <if test="id != null"> and id=#{id} </if> <if test="name != null and name != ''"> and name=#{name} </if> </select> 在上面的例子中,<if>标签用来判断条件,根据条件生成不同的SQL语句。 6、其它元素 在mapper.xml中,还可以使用其它元素来完成更多的功能,例如: (1)<resultMap>元素:定义结果集映射关系; (2)<include>元素:引入其它的SQL语句; (3)<where>、<set>等元素:用于构建复杂的SQL语句; (4)<foreach>元素:用于遍历集合或数组等。 总之,mapper.xml文件是Mybatis框架中非常重要的配置文件,它定义了SQL语句、映射关系、参数映射等信息,是Mybatis实现持久化操作的核心。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值