MyBatis核心配置文件详解

2023-11-12

------------------------siwuxie095

   

   

   

   

   

   

   

   

   

MyBatis 核心配置文件详解

   

   

1、核心配置文件的名称和位置没有固定要求

   

1)位置:建议在 src

   

2)名称:建议为 mybatis-config.xml

   

   

   

2、核心配置文件的内容全部写在根标签 <configuration>

   

   

   

3、核心配置文件的内容组成

   

第一部分:配置环境(必须)

   

第二部分:其它配置(可选)

   

第三部分:引入映射配置文件(必须)

   

   

   

   

4、核心配置文件中元素的配置顺序可参照下图

   

   

   

参考链接:http://www.mybatis.org/mybatis-3/zh/configuration.html

   

   

   

   

5、核心配置文件中的主要标签

   

1properties(属性)

   

用于设置属性,且这些属性都是可外部配置和可动态替换的

   

   

如:读取外部属性文件

   

   

「属性文件 也称 资源配置文件,相对于核心配置文件而言,它是外部的」

   

   

   

2settings(设置)*

   

用于改变 MyBatis 的运行时行为

   

1

   

参数:cacheEnabled

   

描述:该配置影响的所有映射器中配置的缓存的全局开关

   

有效值:true | false

   

默认值:true

   

   

2

   

参数:lazyLoadingEnabled

   

描述:延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。

特定关联关系中可通过设置fetchType属性来覆盖该项的开关状态

   

有效值:true | false

   

默认值:false

   

   

3

   

参数:aggressiveLazyLoading

   

描述:当开启时,任何方法的调用都会加载该对象的所有属性。否则,

每个属性会按需加载(参考lazyLoadTriggerMethods)

   

有效值:true | false

   

默认值:false (true in 3.4.1)

   

   

4

   

参数:mapUnderscoreToCamelCase

   

描述:是否开启自动驼峰命名规则(camel case)映射,即从经典数据库

列名 A_COLUMN 到经典 Java 属性名 aColumn 的类似映射

   

有效值:true | false

   

默认值:false

   

   

如:开启自动驼峰命名规则映射

   

   

   

   

3typeAliases(类型别名)*

   

用于为 Java 类型设置一个短的名字,以减少类完全限定名的冗余

   

   

如:

   

   

当这样配置时,User 可以用在任何使用 com.siwuxie095.entity.User

的地方

   

其中:

   

1)type 为 Java 类型,alias 为别名名称

   

2)建议将别名设置为类名

   

3)别名首字母不区分大小写,建议大写

   

   

当然,也可以指定一个包名,MyBatis 会自动扫描该包下的所有类,

并自动生成对应别名(默认为类名)

   

如:

   

   

   

另外,MyBatis 也内置了许多相应的类型别名,即 默认类型别名,

其中有基本数据类型、包装类、集合类

   

   

   

4typeHandlers(类型处理器)

   

用于在参数映射和结果映射时,将值以合适的方式转换成 Java 类型

   

「MyBatis 提供了许多默认的类型处理器,一般不需要自定义」

   

   

   

5plugins(插件)*

   

用于在已映射语句执行过程中的某一点进行拦截调用,所以 插件 也称 拦截器

   

 

主要为以下四个点:

   

1)Executor

   

2)ParameterHandler

   

3)ResultSetHandler

   

4)StatementHandler

   

   

   

6environments(环境)

   

用于配置环境,其中包括事务管理器和数据源,且 MyBatis 可以

配置成适应多种环境(开发环境、测试环境、生产环境)

   

   

如:配置开发环境

   

   

   

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

</environments>

   

   

   

7mappers(映射器)*

   

用于引入包含映射语句的文件(映射配置文件 映射器接口)

   

法一:指定映射配置文件的相对路径

   

   

<mappers>

 

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

 

</mappers>

   

   

法二:指定映射配置文件的绝对路径

   

   

<mappers>

 

<mapper url="file:///E:/workspace/TestMyBatis/src/com/siwuxie095/mapper/UserMapper.xml"/>

 

</mappers>

   

   

法三:指定映射器接口的相对路径

   

   

<mappers>

 

<mapper class="com.siwuxie095.mapper.UserMapper"/>

 

</mappers>

   

   

法四:指定映射器接口的包名

   

   

<mappers>

 

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

 

</mappers>

   

   

注意:

   

1)对于法一和法二,建议将映射配置文件放在映射器接口所在包下

   

2)对于法三和法四,必须将映射配置文件放在映射器接口所在包下

   

   

   

   

   

   

   

   

   

【made by siwuxie095】

转载于:https://www.cnblogs.com/siwuxie095/p/8372898.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MyBatis核心配置文件详解 的相关文章

  • MySQL5.6 双机HA高可用部署方案

    1 mysql主备机管理信息 10 0 0 10 192 168 2 6 10 0 0 11 192 168 2 8 注 前面的是管理地址 括号中为生产地址 mysq vip 192 168 2 9 注 mysql双机软件通过上面的vip对
  • JS数组中对象ID相同(对象相同属性)对某值进行相加与数组去重

    1 数组对象相同属性的相加 let obj const arr id 0 stock 1 id 2 stock 1 id 2 stock 33 id 1 stock 2 id 0 stock 0 第一种方式 arr forEach item
  • 嵌入式Linux入门-彻底理解UART串口,手把手教你写程序

    UART串口这个东西 是嵌入式学习上避不开的 不仅在调试中经常用到 还有很多模块通过串口与SOC相连 这篇文章让你彻彻底底 搞明白串口程序的编写 没有基础的先看 嵌入式Linux学习系列全部文章 嵌入式Linux学习 从裸机到应用教程大全
  • 操作系统概念-----多进程管理

    操作系统的核心就是多进程管理 单个CPU如果顺序执行程序 效果如图 读磁盘是一个很消耗时间的操作 但是读磁盘并不是一个需要cpu的操作 所以cpu在读磁盘的时候去如果去执行程序B的话 cpu利用率就会增加 那么问题来了 当从程序A切换到B再
  • mysql 常用的查询命令

    55 从Key1中获取rand1 SELECT rand1 FROM key first WHERE key first id 1 数据如下 查询表名 show tables 查询字段 select COLUMN NAME from inf
  • Node Sass does not yet support your current environment

    异常信息 Module build failed Error Node Sass does not yet support your current environment Windows 64 bit with Unsupported r
  • 【云原生】Docker 网络模式详解、容器间网络通信

    当项目大规模使用 Docker 时 容器通信的问题也就产生了 要解决容器通信问题 必须先了解很多关于网络的知识 Docker 作为目前最火的轻量级容器技术 有很多令人称道的功能 也有着很多不完善的地方 网络方面就是 Docker 比较薄弱的
  • 官网下载 Xshell 或 Xftp 的个人免费版本

    如果你还在找 Xshell 或 Xftp 的破解版 完全没必要 因为官方已经针对个人用户 提供了完全免费版本 官方免费版下载步骤如下 https www netsarang com zh free for home school 点击邮件中
  • 解决 Uncaught SyntaxError: Unexpected token ‘<‘

    解决 Uncaught SyntaxError Unexpected token lt 在写第一个React用例时候 代码如下
  • 爬虫 自动化工具-mongo-多线程爬虫

    一 selenium框架 1 selenium介绍 介绍 1 selenium是一个web自动化测试用的框架 程序员可以通过代码实现对浏览器的控制 比如打开网页 点 击网页中的元素 实现鼠标滚动等操作 2 它支持多款浏览器 如谷歌浏览器 火
  • spring---web项目结构分层

    一般的web结构 在前后台分离的情况下 我们对前端一般会以WEB API的形式同过JSON交互来与前端进行交互 一般来讲 我们的数据模型会在controller层进行交互 进行数据的校验与处理 然后交给service层进行相应的逻辑处理 如
  • OpenCV+ip摄像头实现远程实时监控

    一 项目准备 本项目所使用的内容有 1 ip摄像头app 主要依靠连接其ip来实现远程连接的效果 效果和遥控无人机所用的app功能类似 2 外接扩展显示屏 HDMI接口 这个不是必需品 但是多一个屏就方面观察 想自动识别某些物品并记录等等的
  • TS 对象可能为“未定义”,不能将类型“ XXXX

    前言 最近用 typeScript 也就是大家常说的 TS 写点东西 但是老是提醒这个未定义 那个可能为空 主要是 tsconfig json 中的严格模式我没关 所以今天总结一下 严格模式中 TS 中遇到 对象可能为 未定义 的具体场景
  • 资产扫描神器ARL增强改造

    拉取项目 首先从GitHub克隆到服务器上 git clone https github com ki9mu ARL plus docker 修改配置文件 因为ARL在配置文件里设置了黑名单 有时候项目为GOV或者EDU之类的时候无法进行扫
  • Java自定义实现字符串比较器-按照数字大小排序

    背景 在日常开发中 经常会遇到一些字符串排序的场景 场景一 字符串中包含的是纯数字 比较时想按照正常的数字大小进行排序 场景二 字符串中既包含数字又包含普通字符 比较时 普通字符想按照默认的字典进行排序 遇到字符串时则按照数字大小进行比较
  • Visual Stdio中使用番茄插件智能提示功能出问题。头文件也没有智能提示,甚至iostream都无法补全

    我在网上没有搜到同类型问题的解决办法 这个问题绝大部分人都不会遇到吧 不过我遇到了 问了大佬 也不知道什么原因 自己在大量乱点后 发现VA中的这个设置能解决问题 vs菜单栏的VASSIST gt Visual Assist Options
  • win7 64位 python3.4&opencv3.0配置安装教程

    一 安装Python 下载Python3 4 2 网址 https www python org downloads 注意 1 之前下载Python3 5后安装numpy出现了安装错误 尝试了各种解决办法 还是不能成功 看到网上有一条评论说
  • 粒子滤波(Particle filter)matlab实现

    粒子滤波是以贝叶斯推理和重要性采样为基本框架的 因此 想要掌握粒子滤波 对于上述两个基本内容必须有一个初步的了解 贝叶斯公式非常perfect 但是在实际问题中 由于变量维数很高 被积函数很难积分 常常会给粒子滤波带来很大的麻烦 为了克服这
  • Python 正则表达式

    最近研究Python爬虫 很多地方用到了正则表达式 但是没好好研究 每次都得现查文档 今天就专门看看Python正则表达式 本文参考了官方文档 re模块 模式 首先正则表达式的语法我就不说了 这玩意倒是不算难 用的时候现查就行了 正则表达式
  • 从0开始阿里云裸机安装java开发环境 Linux + Nginx+ MySQL+ Tomcat(lnmt)

    步骤1 更新阿里云的安装系统yum源 参考 https help aliyun com knowledge detail 5974184 html 参考 http blog csdn net endall article details 1

随机推荐

  • 数据库项目四总结:MySQL数据表的检索

    任务4 1 查询时选择列 1 基本查询语句 MySQL从数据表中查询数据的基本语句为SELECT语句 SELECT语句的基本格式是 SELECT lt 字段列表 gt FROM lt 表1 gt lt 表2 gt WHERE lt 表达式
  • MySQL的多表操作

    文章目录 1 多表关系 2 外键约束 2 1创建外键约束 2 2删除外键约束 3 对表联合查询 3 1交叉连接 3 2内连接 3 3外连接 4 子查询及子查询关键字 4 1 ALL关键字 4 2 ANY和SOME关键字 4 3 IN关键字
  • Python解析XML示例与解释

    使用工具包xml解析 python自带的工具 可以直接使用 使用示例如下 文章目录 简单案例 nodeType对应数字及其含义 简单案例
  • Sensor 结构——前照、背照、堆栈

    优异的工艺和技术可以使得即便不使用更新结构的CMOS 同样拥有更好的量子效率 固有热噪声 增益 满阱电荷 宽容度 灵敏度等关键型指标 在相同技术和工艺下 底大一级的确压死人 全画幅和aps c 人类的进步就是在不断发现问题 解决问题 背照式
  • redis master配置了密码进行主从同步

    1 如果master不设置密码 那么直接在slave服务器配置slaveof即可 配置如下 slaveof ip 端口 slaveof 221 224 85 186 6379 配置好我们看下redis的日志 看是否同步成功 5014 S 2
  • 生产线程池的定义与使用

    定义线程池 Slf4j Component public class PalmThreadPool public static int CORE POOL SIZE 4 private final AtomicInteger atomicI
  • C++ 中的常量,Const 关键字的用法(C++复习向p6)

    Const 常量 常量是固定的 程序执行期间不改变 又叫字面量 常量的类型 整数常量 0x23 浮点常量 1 23 布尔常量 true false 字符常量 n 字符串常量 nihao 定义常量 把字面量写成大写字母形式 是一个好习惯 方法
  • sql语句中分组取每组的最新数据

    今天敲sql的时候遇到了一个问题 业务流程是 检查记录 gt 整改通知 gt 整改回复 gt 检查组复查 如果复查不通过 则 检查组复查 gt 整改通知 gt 整改回复 gt 检查组复查 此时一条检查记录就可能对应多条整改通知去最新数据就用
  • JavaScript 将扁平的数组输出转为树形结构(需要考虑性能)

    扁平数组转为树形结构 做后台管理系统时也是经常用到的功能 面试时也是常常出现的 今天实现一下 引用两篇掘金大佬的文章 感谢大佬 一 什么是好算法 什么是坏算法 判断一个算法的好坏 一般从执行时间和占用空间来看 执行时间越短 占用的内存空间越
  • 刷脸设备引进越来越多的人喜欢靠脸消费

    刷脸支付已经成为今年比较热门的一个话题了 随便刷个新闻 微博或各大网络平台等都不免会看到有关刷脸支付的消息 感觉不了解刷脸支付就好像与这个时代脱离轨道了似的 那么今天就来给大家讲一讲刷脸支付对于消费者和商家各具有优势它比扫码支付更加安全便捷
  • gdb调试时显示数组

    可以用下面的方法来显示数组 p array len 其中p相当于print array就是数组首地址 也可以是数组名 len是想要显示的数组的长度 比如我有一个数组的定义 int a 1 2 3 4 5 那么想要显示的时候就可以写 p a
  • 基于百度PaddleHub实现人像美颜V1.0

    AI美颜核心技术之一就是人脸关键点检测 PaddleHub已经开源了人脸关键点检测模型 face landmark localization 人脸关键点检测是人脸识别和分析领域中的关键一步 它是诸如自动人脸识别 表情分析 三维人脸重建及三维
  • Spring入门-基本介绍和IOC控制反转(注解方式)

    1 Spring概述 Spring官网 Spring 顾名思义 java软件行业的春天 彻底解放了程序员从原生的开发中 一个轻量级的非侵入式的框架 特点 控制反转 IoC 面向切面 Aop 组成 组成 Spring 框架的每个模块 或组件
  • 工作学习中对 Windows 的积累

    wscript 命令 bat 文件 vbs 文件 wshell wshshell Sleep 1000 wshshell SendKeys 123 wshshell Sleep 1000 全局搜索 链接 https blog csdn ne
  • 跟奥巴马一起编程 C语言

    美国总统奥巴马不仅呼吁所有人都学习编程 甚至以身作则编写代码 成为美国历史上首位编写计算机代码的总统 2014 年底 为庆祝 计算机科学教育周 正式启动 奥巴马编写了很简单的计算机代码 在屏幕上画一个正方形 现在你也跟他一起画吧 输入格式
  • Activiti使用教程

    1 概念 首先需要分清三个概念 流程 流程实例 任务实例 Activiti提供4个bean来操作流程 RepositoryService RuntimeService TaskService HistoryService 2 流程 针对于某
  • 我们为什么使用KafKa

    为什么我们需要使用KafKa https blog csdn net SJF0115 article details 78480433
  • Atlas VPN 曝零日漏洞,允许查看用户真实 IP 地址

    Atlas VPN 已确认存在一个零日漏洞 该漏洞允许网站所有者查看 Linux 用户的真实 IP 地址 不久前 发现该漏洞的人在Reddit上公开发布了有关该零日漏洞的详细信息以及漏洞利用代码 关于 Atlas VPN 零日漏洞 Atla
  • stm32固件升级之U盘(四)

    目录 序言 什么是IAP升级 STM32代码启动介绍 IAP设计思路 bootloader设计 stm32内部flash分区 移植U盘底层源码 总结 序言 对于嵌入式软件开发来说 U盘离线更新固件是一种常用的更新手段 本篇文章讲述了如何通过
  • MyBatis核心配置文件详解

    siwuxie095 MyBatis 核心配置文件详解 1 核心配置文件的名称和位置没有固定要求 1 位置 建议在 src 下 2 名称 建议为 mybatis config xml 2 核心配置文件的内容全部写在根标签