MyBatis--常见配置

简介: MyBatis配置优先级:方法参数 > resource/url属性 > properties元素内属性。支持多环境配置,通过environments指定默认环境和数据源,结合事务管理器(JDBC/MANAGED)管理事务,常用于多数据源场景,与Spring集成时由Spring接管事务管理。

1.前言
mybatis官网Java-api地址:https://mybatis.org/mybatis-3/zh/java-api.html
2.常见配置
如果一个属性不止在一个地方进行配置,那么mybatis将按照下面顺序进行加载
● 首先读取properties元素体内的属性
● 然后根据properties元素中的resource属性读取类路径下属性文件,或根据url属性指定的路径读取属性文件,并覆盖之前读取过的同名属性
● 最后读取作为方法参数传递的属性,并覆盖之前读取过的同名属性
因此,优先级顺序:方法参数传递的属性>resource/url属性中配置>properties元素中指定属性
2.1 几个常见配置属性
image.png
2.2 多环境配置
多个数据源,就创建多个SqlSessionFactory,每个对应一个数据库

为了指定创建哪种环境,只要将它作为可选的参数传递给 SqlSessionFactoryBuilder 即可。可以接受环境配置的两个方法签名是:
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader, environment);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader, environment, properties);
如果忽略了环境参数,那么将会加载默认环境,如下所示:
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader, properties);
environments 元素定义了如何配置环境:














几个关键点:
● 默认使用的环境 ID(比如:default="development")。
● 每个 environment 元素定义的环境 ID(比如:id="development")。
● 事务管理器的配置(比如:type="JDBC")。
● 数据源的配置(比如:type="POOLED")。
默认环境和环境 ID 顾名思义。 环境可以随意命名,但务必保证默认的环境 ID 要匹配其中一个环境 ID。

3 事务管理
1 JDBC
这个配置直接使用了 JDBC 的提交和回滚设施,它依赖从数据源获得的连接来管理事务作用域
2 MANAGED
它从不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如 JEE 应用服务器的上下文)。 默认情况下它会关闭连接。然而一些容器并不希望连接被关闭,因此需要将 closeConnection 属性设置为 false 来阻止默认的关闭行为。
注意:
如果用 Spring + MyBatis,则没有必要配置事务管理器,因为 Spring 模块会使用自带的管理器来覆盖前面的配置。这两种事务管理器类型都不需要设置任何属性。

相关文章
|
10天前
|
SQL 运维 关系型数据库
阿里云RDS MySQL 8.4正式发布:长期支持,平滑兼容,深度优化
阿里云RDS MySQL 8.4正式上线!作为首个LTS长期支持版,相比8.0寿命更长、稳定性更高,并深度集成AliSQL内核优化:秒级改列、大事务治理、复制延迟优化等。兼容MySQL 8.0语法与插件,支持平滑升级,EOL无忧。
|
7月前
|
监控 算法 NoSQL
Go 微服务限流与熔断最佳实践:滑动窗口、令牌桶与自适应阈值
🌟蒋星熠Jaxonic:Go微服务限流熔断实践者。分享基于滑动窗口、令牌桶与自适应阈值的智能防护体系,助力高并发系统稳定运行。
1082 1
Go 微服务限流与熔断最佳实践:滑动窗口、令牌桶与自适应阈值
|
4月前
|
人工智能 关系型数据库 分布式数据库
PolarDB AI助手:自然语言驱动的智能数据库运维新范式
阿里云PolarDB推出AI助手(Copilot),基于大模型与专家知识库,集成智能问答、诊断、感知三大能力,支持自然语言交互,实现慢SQL分析、参数调优、主备根因定位等场景化运维,显著降低门槛、提升稳定性与效率。(239字)
PolarDB AI助手:自然语言驱动的智能数据库运维新范式
|
4月前
|
安全 物联网 API
Windows 11 25H2 | 24H2 中文版、英文版 (x64、ARM64) 下载 (2026 年 1 月更新)
Windows 11 25H2 | 24H2 中文版、英文版 (x64、ARM64) 下载 (2026 年 1 月更新)
757 0
Windows 11 25H2 | 24H2 中文版、英文版 (x64、ARM64) 下载 (2026 年 1 月更新)
@Documented注解
该注解可用于生成Javadoc文档,结合@Target、@Retention等元注解,是实现自定义注解的基础。掌握其用法可提升代码可读性与开发效率。详情可参考“自定义注解”教程。
|
5月前
|
Java 测试技术 Apache
安装Jmeter
JMeter依赖JDK,需先安装并配置JDK环境变量。前往Apache JMeter官网(http://jmeter.apache.org/download_jmeter.cgi)下载最新版本,解压后即可使用,适用于性能测试与负载模拟。
|
5月前
|
Java
@SpringBootConfiguration注解
@SpringBootConfiguration是@Configuration的封装,标注主启动类,使其所在包成为组件扫描的根路径。因此主类需置于外层包,确保所有组件被扫描到,实现自动配置与组件注入。
|
5月前
|
安全 Java 开发工具
整合SpringSecurity
本文介绍了Spring Security与Spring Boot的整合步骤:引入依赖、启动验证及登录测试。通过日志变化和自动跳转至login页面验证集成成功,使用默认用户名user和控制台生成的动态密码登录后,可访问受保护资源。完整代码见GitHub仓库Day01分支。
|
11月前
|
Cloud Native 安全 Linux
龙蜥操作系统:CentOS 谢幕之后,国产云原生系统的崛起之路
龙蜥操作系统(Anolis OS)是 CentOS 停止维护后,由阿里云等企业联合发起的开源项目。它以双内核架构和全栈优化为核心,提供无缝替代 CentOS 的方案,兼容主流生态并针对云计算场景深度优化。其技术亮点包括 RHCK 和 ANCK 双内核、性能优化、全栈安全及国密算法支持。龙蜥适用于云原生基础设施、企业级应用部署及开发环境,社区已吸引 200 多家单位参与。未来规划涵盖 AI 框架优化、RISC-V 架构适配及桌面环境构建,正重新定义云时代的操作系统边界。
3874 0
|
SQL 存储 JSON
实时数仓 Hologres 产品介绍:一体化实时湖仓平台
本次方案的主题是实时数仓 Hologres 产品介绍:一体化实时湖仓平台,介绍了 Hologres 湖仓存储一体,多模式计算一体、分析服务一体和 Data+AI 一体四方面一体化场景,并对其运维监控方面及客户案例进行一定讲解。 1. Hologres :面向未来的一体化实时湖仓 2. 运维监控 3. 客户案例 4. 总结
956 14

热门文章

最新文章