【MyBatis】MyBatis-config标签详解
目录
- MyBatis配置文件标签详解
- configuration标签
- properties标签
- typeAliases标签
- environments标签
- environment标签
- transactionManager标签
- dataSource标签
- mappers标签
MyBatis配置文件标签详解
我们在使用MyBatis框架的时候需要一个配置文件——MyBatis-config.xml来告诉MyBatis我们所使用的数据类型以及Mappers所在的位置等信息,那么我们来看一下这个配置文件中大部分标签都代表了什么:
emmm这个配置文件是有模板的,我们可以去MyBatis官网下载和所使用依赖版本对应的MyBatis压缩包,在那个里面会找到一份说明文件:mybatis-版本号.pdf,或者你不想下载的话:mybatis – MyBatis 3 | 入门打开这个网站,你会得到你想要的一切说明。
configuration标签
我们所有的配置标签都会在这个大标签下配置,子标签是有顺序的,顺序不对会报错,顺序如下:
<!-- (properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?) -->
properties标签
这些属性可以在外部进行配置,并可以进行动态替换。你既可以在典型的 Java 属性文件中配置这些属性,也可以在 properties 元素的子元素中设置。例如JDBC驱动配置:
<properties resource="jdbc.properties"/>
typeAliases标签
以包为单位的形式,将该包下所有类型设置默认的类型别名,别名为类名,且不在区分大小写
<typeAliases><package name="com.qcby.mybatis"/>
</typeAliases>
这里我就将com.qcby.mybatis这个包下面的的所有类文件都设置了类别名,这样在写Mapper映射文件鹅时候我们就可以将参数或者是返回值类型不再写成全名,而是别名,就像下面一样:
-
未设置别名之前:

-
设置别名之后:

下面是一些常见的别名书写方式:
| 别名 | 映射的类型 |
|---|---|
| _byte | byte |
| _char (since 3.5.10) | char |
| _character (since 3.5.10) | char |
| _long | long |
| _short | short |
| _int | int |
| _integer | int |
| _double | double |
| _float | float |
| _boolean | boolean |
| string | String |
| byte | Byte |
| char (since 3.5.10) | Character |
| character (since 3.5.10) | Character |
| long | Long |
| short | Short |
| int | Integer |
| integer | Integer |
| double | Double |
| float | Float |
| boolean | Boolean |
| date | Date |
| decimal | BigDecimal |
| bigdecimal | BigDecimal |
| biginteger | BigInteger |
| object | Object |
| date[] | Date[] |
| decimal[] | BigDecimal[] |
| bigdecimal[] | BigDecimal[] |
| biginteger[] | BigInteger[] |
| object[] | Object[] |
| map | Map |
| hashmap | HashMap |
| list | List |
| arraylist | ArrayList |
| collection | Collection |
| iterator | Iterator |
environments标签
- environment: 配置某个具体的环境
- 属性: id 表示链接数据库的环境的唯一标识 不能重复
environment标签
environments下的子标签
- environment: 配置某个具体的环境
- 属性: id 表示链接数据库的环境的唯一标识 不能重复
transactionManager标签
environments下的子标签
- transactionManager: 配置数据库事务管理器
- 属性: type=“JDBC|MANAGED”
- JDBC:使用JDBC的方式管理事务,事务的提交或回滚需要手动处理
- MANAGED:使用容器的方式管理事务(例如Spring),此时会自动提交或回滚事务
dataSource标签
- dataSource: 配置数据源
- 属性: type=“UNPOOLED|POOLED|JNDI”
- UNPOOLED:不配置连接池,直接使用数据库连接
- POOLED:配置数据库连接池,使用数据库连接池管理数据库连接
- JNDI:配置JNDI服务器,使用上下文的数据库连接池管理数据库连接
<environments default="mysql"><!--environment: 配置某个具体的环境属性: id 表示链接数据库的环境的唯一标识 不能重复--><environment id="mysql"><!--transactionManager: 配置数据库事务管理器属性: type="JDBC|MANAGED"JDBC:使用JDBC的方式管理事务,事务的提交或回滚需要手动处理MANAGED:使用容器的方式管理事务(例如Spring),此时会自动提交或回滚事务--><transactionManager type="JDBC"/><!--dataSource: 配置数据源属性: type="UNPOOLED|POOLED|JNDI"UNPOOLED:不配置连接池,直接使用数据库连接POOLED:配置数据库连接池,使用数据库连接池管理数据库连接JNDI:配置JNDI服务器,使用上下文的数据库连接池管理数据库连接--><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>
mappers标签
- mappers: 以包为单位引入映射文件
- 满足两个要求:
- Mapper接口所在的包要和映射文件所在的包一致
- Mapper接口要和映射文件的名字一致
相关文章:
【MyBatis】MyBatis-config标签详解
目录 MyBatis配置文件标签详解configuration标签properties标签typeAliases标签environments标签environment标签transactionManager标签dataSource标签mappers标签 MyBatis配置文件标签详解 我们在使用MyBatis框架的时候需要一个配置文件——MyBatis-config.xml来告诉MyBatis…...
使用AVPlayer进行音频播放开发基础设计
在使用AvPlayer进行设计之前,需要获取相应对象,后期围绕该对象展开操作 const player await media.createAVPlayer() 然后对播放器进行初始化设置: player.on(stateChange, (state) > {switch (state) {case initialized:player.prepar…...
API网关的作用--为什么微服务需要一个API网关?
微服务网关核心作用就是协议转换、安全隔离和流量控制 微服务架构中,API网关作为系统的入口点,可以统一处理所有客户端请求。 1)协议转换:它能够支持多种通信协议(如HTTP、gRPC等)之间的相互转换ÿ…...
[0154].第5节:IDEA中创建Java Web工程
我的后端学习大纲 IDEA大纲 1.1.IDEA中配置Tomcat: 1.找打setting: 2.配置Tomcat Server的位置: 3.这里配置Tomcat的名称以及配置应用服务器的位置。根据自己Tomcat的安装位置决定 4.配置好后,如下图所示 1.2.创建Web工程: 1.建…...
React03 组件 Props
组件 & Props React 组件函数( Function )组件类( Class )组件 Props将 props 传递给子组件在子组件中读取 props给 prop 指定一个默认值使用 JSX 展开语法传递 props React 组件 组件本质上就是类和函数,但是与常…...
多线程——线程安全的集合类
目录 前言 一、多线程环境使用 ArrayList 1.进行加锁 2.使用 SynchronizedList 类 3.使用 CopyOnWriteArrayList 类 二、多线程环境使用队列 1.进行加锁 2.使用阻塞队列 三、多线程环境使用哈希表 1.Hashtable 2.ConcurrentHashMap (1)缩小锁…...
自动化数据库管理:如何通过存储过程动态创建 MySQL 对象
在当今数据驱动的世界中,高效的数据库管理至关重要。本文将展示如何通过存储过程自动化地创建各种 MySQL 数据库对象,包括数据表、视图、字段、索引、约束、存储过程、定时器和事件。通过这些方法,我们可以快速响应业务需求,提高数…...
480p 720p 1080p 2k 4k 8k 12k分辨率视频分别占用多大带宽?
技术背景 好多开发者,在设置视频编码参数的时候,对不同分辨率的带宽设置,缺乏相关的经验,实际上,视频分辨率与所需带宽之间的关系受到多个因素的影响,包括视频编码方式、帧率、视频内容的动态程度等。下面…...
unity中GameObject介绍
在 Unity 中,Cube和Sphere等基本几何体是 Unity 引擎的内置预制体(Prefabs),它们属于 Unity 中的GameObject 系统,可以在 Unity 的 Hierarchy 视图或 Scene 视图中右键点击,然后在弹出的菜单中选择 3D Obje…...
洛谷——P8468 [Aya Round 1 C] 文文的构造游戏(01构造问题)
P8468 [Aya Round 1 C] 文文的构造游戏 题目描述 [Aya Round 1 C] 文文的构造游戏 - 洛谷 运行代码(暴力枚举)——超时 #include <stdio.h> #define ll long long const int N 1e6 5; // 计算数组元素的异或和 ll xorSum(ll arr[], int n) {l…...
双击热备和负载均衡的区别
区别: 双机热备 (heartbeat):对同一应用来讲,永远是主机应用启动,备机应用停止的一主一备模式(两台通常叫双击热备,多台称为高可用) 负载均衡:两台/多台服务器 上同一个应用系统同时工作,分担负…...
如何使用 cPanel 部署 WordPress临时网站
对于依赖WordPress站点或WooCommerce商店的企业来说,在生产环境中直接修改站点风险很大。而WordPress的临时网站是一个更安全的选择,可以通过使用临时网站进行编辑来规避风险。 在本文中,我们将详细介绍WordPress临时网站的相关知识、使用临时…...
Android 自定义 Dialog 实现列表 单选,多选,搜索
前言 在Android开发中,通过对话框让用户选择,筛选信息是很方便也很常见的操作。本文详细介绍了如何使用自定义 Dialog、RecyclerView 以及自定义搜索框 来实现选中状态和用户交互,文中大本分代码都有明确注释,主打一个简单明了&a…...
下载地址合辑(持续更新)
下载地址合辑 汇总OSG相关地址Visual Studio Qt 地址qt插件安装失败 Boost库boost库编译步骤 FFmpeg 地址osg编译库 常用的下载地址: 汇总 vlc 地址: https://www.videolan.org/vlc/index.zh_CN.html visual 地址:https://my.visualstudio.…...
Android Kotlin 高阶函数详解及其在协程中的应用
文章目录 1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda 表达式3.3 匿名函数3.4 返回函数 4. 高阶函数的深入用法4.1 函数组合4.2 内联函数4.3 高阶扩展函数 5. Kotlin 高阶函数的对比优势5.1 与 Java 的对比5.2 与 JavaScript 的…...
CSS基础—网页布局(重点!)
1、两列布局 (1)概念 经典两列布局是指一种网页布局方式,其中一列宽度固定,另一列宽度自适应。 这种布局方式在网页设计中非常常见,因为它能够提供良好的视觉效果和用户体验。 如图所示: 页面顶部放置一…...
【Fargo】17:vs工程转qt构建:QT6 不支持32bit转向qt5.15.2
vs2022的console 工程加入qt支持后使用qt15.2 的vs2019 库,变为一个qt界面程序。最终效果 一些参考 qt5的项目搭建 qt5 最多支持到vs2019 qt6 最新 已经支持vs2022 国内还是以qt5.15为主 升级qt的vstools...
智能电表蓝牙芯片方案
RAMSUN基于自研射频技术和基带算法提供蓝牙MCU。蓝牙MCU配套成熟的网络协议栈和丰富的示例代码及多平台APP工具。部分芯片型号无需二次开发,即连即用;提供特色蓝牙/串口/USB三通芯片,为更多复杂无线应用赋能。 应用案例说明: BLE方便用户直接…...
miRNA分析流程学习(一)/TCGAmiRNA数据下载
miRNA(microRNA) 是一种小的非编码 RNA 分子,通常由 20 到 24 个核苷酸组成。miRNA 主要存在于动植物中,并在基因表达调控中起到关键作用。它们通过与特定的信使 RNA(mRNA)分子结合来抑制基因表达ÿ…...
西南大学软件专硕考研难度分析!
C哥专业提供——计软考研院校选择分析专业课备考指南规划 西南大学软件工程学硕近三年呈现出招生规模稳定、复试线稳中有升的特点。2024届实际录取8人,复试分数线305分,复试录取率67%,相比去年复试线略有下降但仍高于2022届,显示出…...
OpenCart安全审计实战:静态代码扫描与核心漏洞修复指南
1. 项目概述与核心价值最近在整理一个基于OpenCart的电商项目时,客户提出了一个非常具体且关键的需求:需要对整个系统的安全性进行一次全面的审计。这不仅仅是运行一个自动化扫描工具那么简单,客户希望我们能深入代码层面,检查是否…...
Exception Error
Exception 分为两类:运行时异常(非受检异常)继承自 RuntimeException, 编译器不强制处理,多为代码逻辑错误导致。常见例子: NullPointerException(空指针异常) ArrayIndexOutOfBound…...
WeChatFerry:基于RPC与DLL注入的微信PC端自动化框架深度解析
1. 项目概述与核心价值 最近在折腾微信自动化相关的东西,发现了一个挺有意思的项目——WeChatFerry。这名字起得挺形象,“Ferry”是渡轮的意思,感觉就像是在你的程序和微信客户端之间搭了一座桥,让数据可以安全、稳定地“摆渡”过…...
3步解锁Cursor AI编程助手完整功能:多账户管理与设备重置终极方案
3步解锁Cursor AI编程助手完整功能:多账户管理与设备重置终极方案 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reach…...
FreeRTOS移植避坑指南:当你的芯片不在官方支持列表时(以S3C2440/GCC为例)
FreeRTOS移植方法论:非官方支持芯片的通用适配策略 当你在开源社区下载FreeRTOS压缩包时,是否注意到portable目录下那些以芯片型号命名的文件夹?ARM_CM3、ARM_CM4F、MSP430X——这些官方支持的平台享受着"开箱即用"的便利。但当你手…...
别再傻傻分不清!用Python+Matplotlib手把手教你画出NBI和WBI的频谱与时频图
用PythonMatplotlib实战解析NBI与WBI的频谱与时频特性 在信号处理领域,窄带干扰(NBI)和宽带干扰(WBI)的区分对雷达系统、通信工程等应用至关重要。理论教材中复杂的数学公式常常让初学者望而生畏,而可视化呈现能瞬间让抽象概念变得直观可感。本文将带您用…...
Agent 工程化系列 · 第 05 篇_FunctionCall底层到底怎么实现
Agent 工程化系列 第 05 篇 Function Call 底层到底怎么实现?模型不是在调用函数,而是在生成调用意图。开篇定位 前面第 04 篇,我们讲清楚了 Function Call 是什么: 它不是让大模型“真的去执行函数”,而是让模型在合…...
UWB车内目标探测技术【附仿真】
✨ 长期致力于UWB雷达、活体、目标检测、生命体征、信号模型研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)UWB雷达生命体征信号建模与自适应杂波抑制…...
电商选品神器:Open Claw + 淘宝 API,一键实现商品监控与智能选品
在电商运营、跨境铺货、店铺竞品分析场景中,实时获取淘宝商品数据、自动监控价格 / 销量 / 库存变化是提升选品效率的核心环节。传统手动查品耗时费力,借助 Open Claw 搭配淘宝专业 API,无需爬虫、绕过风控,就能快速搭建稳定的商品…...
面试官最爱问的FPGA亚稳态问题,我用这3个真实波形图给你讲透
FPGA亚稳态问题深度解析:从波形图到面试实战 在数字电路设计中,亚稳态(Metastability)是一个无法回避的核心问题。对于准备FPGA相关岗位面试的工程师来说,能否清晰解释亚稳态现象、分析其成因并提出解决方案࿰…...
