文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Mybatis sqlMapConfig.xml中的mappers标签使用

2024-04-02 19:55

关注

sqlMapConfig.xml中的mappers标签

mappers(映射配置)

1.1:通过resource加载单个映射文件

< !– 加载映射文件 –>
< mappers>
< !–通过resource方法一次加载一个映射文件 –>
< mapper resource=”sqlmap/User.xml”/>
< mapper resource=”mapper/UserMapper.xml”/>
< /mappers>

1.2:通过mapper接口加载单个映射文件

通过mapper接口加载单个映射配置文件

遵循一定的规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录中;

上边规范的前提是:使用的是mapper代理方法

< mapper class=”com.mybatis.mapper.UserMapper”/>

按照上边的规范,将 mapper.java 和 mapper.xml 放在一个目录 ,且同名。

1.3:批量加载mapper(推荐使用)

批量加载映射配置文件,mybatis自动扫描包下面的mapper接口进行加载

遵循一定的规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录中;

上边规范的前提是:使用的是mapper代理方法

< package name=”com.mybatis.mapper”/>

sqlmapconfig核心标签说明以及配置

对于MyBatis最核心的全局配置文件是 sqlmapConfig.xml 文件,其中包含了数据库的连接配置信息、Mapper 映射文件的加载路径、全局参数、类型别名等。

配置项详解

标签名称标签作用
configuration包裹所有配置标签,是整个配置文件的顶级标签。
properties属性,该标签可以引入外部配置的属性,也可以自己配置。该配置标签所在的同一个配置文件中的其他配置均可引用此配置中的属性。
setting全局配置参数,用来配置一些改变运行时行为的信息,例如是否使用缓存机制,是否使用延迟加载,是否使用错误处理机制等。并且可以设置最大并发请求数量、最大并发事务数量,以及是否启用命令空间等。
typeAliases类型别名,用来设置一些别名来代替 Java 的长类型声明,如 java.lang.int 变为 int,减少配置编码的冗余。
typeHandlers类型处理器,将 sql 中返回的数据库类型转换为相应 Java 类型的处理器配置。
objectFactory对象工厂,实例化目标类的工厂类配置。
plugins插件,可以通过插件修改 MyBatis 的核心行为,例如对语句执行的某一点进行拦截调用。
environments环境集合属性对象,数据库环境信息的集合。在一个配置文件中,可以有多种数据库环境集合,这样使 MyBatis 将 sql 同时映射至多个数据库。
environment环境子属性对象,数据库环境配置的详细配置。
transactionManager事务管理,指定 MyBatis 的事务管理器。
dataSource数据源,使其中的 type 指定数据源的连接类型,在标签对中可以使用 property 属性指定数据库连接池的其他信息。
mappers映射器,配置 sql 映射文件的位置,告知 MyBatis 去哪里加载 sql 映射配置。

配置示例

<?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> 
    <!-- 1.properties属性引入外部配置文件 -->
    <properties resource="org/mybatis/example/config.properties">
        <!-- property里面的属性全局均可使用 -->
        <property name="username" value="admin"/>
        <property name="password" value="admin"/>
    </properties>
    <!-- 2.全局配置参数 -->
    <settings>
       <!-- 设置是否启用缓存 -->
       <setting name="cacheEnabled" value="true"/>
       <!-- 设置是否启用懒加载 -->
        <setting name="lazyLoadingEnabled" value="true"/>   
    </settings>
    <!-- 3.别名设置 -->
    <typeAliases>
        <typeAlias alias="student" type="cn.com.mybatis.Student"/>
        <typeAlias alias="teacher" type="cn.com.mybatis.Teacher"/>
        <typeAlias alias="integer" type="java.lang.Integer"/>
    </typeAliases>
    <!-- 4.类型转换器 -->
    <typeHandlers>
        <!-- 一个简单类型转换器 -->
        <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/>
    </typeHandlers>
    <!-- 5.对象工厂 -->
    <objectFactory type="org.mybatis.example.ExampleObjectFactory">
        <!-- 对象工厂注入的参数 -->
        <property name="someProperty" value="100"/>
    </objectFactory>
    <!-- 6.插件 -->
    <plugins>
        <plugin interceptor="org.mybatis.example.ExamplePlugin">
            <property name="someProperty" value="100"/>
        </plugin>
    </plugins>
    <!-- 7.environments数据库环境配置 -->
    <!-- 和Spring整合后environments配置将被废除 -->
    <environments default="development">  
        <environment id="development"> 
            <!-- 使用JDBC事务管理 -->
            <transactionManager type="JDBC" />  
            <!-- 数据库连接池 -->
          <!-- 配置文件加载  这段代码可以在spring-config.xml配置 -->
      <!-- <bean id="configProperties"
          class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="locations">
            <list>
                <value>classpath:db.properties</value>
            </list>
        </property>
      </bean>  -->
            <dataSource type="POOLED">  
                <property name="driver" value="${db.driver}"/>  
                <property name="url" value="${db.url}"/>  
                <property name="username" value="$db.{username}"/>  
                <property name="password" value="${db.password}"/>  
            </dataSource>  
        </environment>  
    </environments>
    <!-- 加载映射文件 也可以将映射文件统一配置,这样就不用每个单独配置-->
    <mappers>  
        <mapper resource="sqlmap/UserMapper.xml"/>
        <mapper resource="sqlmap/OtherMapper.xml"/>
    </mappers>  
</configuration>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯