.常见配置

简介: 本文介绍MyBatis核心配置,包括属性加载优先级(方法参数 > resource/url > properties内部)、常用配置项如缓存、延迟加载、执行器类型等,多环境配置方式及事务管理机制(JDBC与MANAGED),适用于多数据源场景,结合Spring时无需额外配置事务管理。

前言
mybatis官网Java-api地址:https://mybatis.org/mybatis-3/zh/java-api.html
2.常见配置
如果一个属性不止在一个地方进行配置,那么mybatis将按照下面顺序进行加载
首先读取properties元素体内的属性
然后根据properties元素中的resource属性读取类路径下属性文件,或根据url属性指定的路径读取属性文件,并覆盖之前读取过的同名属性
最后读取作为方法参数传递的属性,并覆盖之前读取过的同名属性
因此,优先级顺序:方法参数传递的属性>resource/url属性中配置>properties元素中指定属性
2.1 几个常见配置属性
设置名
描述
有效值
默认值
cacheEnabled
全局性地开启或关闭所有映射器配置文件中已配置的任何缓存。
true | false
true
lazyLoadingEnabled
延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。 特定关联关系中可通过设置 fetchType 属性来覆盖该项的开关状态。
true | false
false
useGeneratedKeys
允许 JDBC 支持自动生成主键,需要数据库驱动支持。如果设置为 true,将强制使用自动生成主键。尽管一些数据库驱动不支持此特性,但仍可正常工作(如 Derby)。
true | false
False
defaultExecutorType
配置默认的执行器。SIMPLE 就是普通的执行器;REUSE 执行器会重用预处理语句(PreparedStatement); BATCH 执行器不仅重用语句还会执行批量更新。
SIMPLE REUSE
BATCH
SIMPLE
localCacheScope
MyBatis 利用本地缓存机制(Local Cache)防止循环引用和加速重复的嵌套查询。 默认值为 SESSION,会缓存一个会话中执行的所有查询。 若设置值为 STATEMENT,本地缓存将仅用于执行语句,对相同 SqlSession 的不同查询将不会进行缓存。
SESSION STATEMENT
SESSION
proxyFactory
指定 Mybatis 创建可延迟加载对象所用到的代理工具。
CGLIB | JAVASSIST
JAVASSIST (3.3 以上)
2.2 多环境配置
多个数据源,就创建多个SqlSessionFactory,每个对应一个数据库
为了指定创建哪种环境,只要将它作为可选的参数传递给 SqlSessionFactoryBuilder 即可。可以接受环境配置的两个方法签名是:
如果忽略了环境参数,那么将会加载默认环境,如下所示:
environments 元素定义了如何配置环境:
XML
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13














几个关键点:
默认使用的环境 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月前
|
弹性计算 定位技术 数据安全/隐私保护
3分钟部署mc我的世界联机服务器教程——阿里云游戏服务器
我的世界是一款沙盒游戏,玩家可在三维空间中自由创造与探索。阿里云推出一键部署镜像服务,支持快速搭建游戏服务器。提供多种配置选择,包括4核16G和8核32G,费用分别为89元和160元每月,助力玩家轻松畅玩。
|
5月前
|
SQL XML Java
持久层框架MyBatisPlus
本节介绍MyBatisPlus(MP)快速入门,通过继承BaseMapper并引入MP依赖,简化单表增删改查操作,替代传统MyBatis的重复SQL编写,提升开发效率,实现CRUD零XML配置。
|
5月前
|
NoSQL JavaScript Shell
MongoDB单机部署
本文介绍MongoDB在Windows系统下的安装启动方法,包括下载32/64位安装包、解压配置、命令行或配置文件方式启动服务,并设置数据目录与端口。同时涵盖Shell连接、图形化工具Compass使用及Linux系统安装要点,助您快速部署运行。
|
5月前
|
存储 运维 Java
微服务概述
单体应用功能集中,模块耦合度高,维护扩展困难;微服务则将应用按业务拆分为独立服务,各服务可独立开发、部署、扩展,技术栈灵活,边界清晰,提升系统可靠性与可维护性,但带来运维、分布式事务等挑战。
|
5月前
|
Dubbo Java 应用服务中间件
Feign远程调用
本章介绍Feign如何优雅替代RestTemplate实现HTTP跨服务调用。通过引入Feign,结合注解声明远程接口,避免服务地址硬编码,提升代码可读性与维护性,并支持自定义日志、编码等配置,实现高效、简洁的微服务通信方案。
|
5月前
|
负载均衡 算法 架构师
Ribbon负载均衡
本文深入解析Spring Cloud中@LoadBalanced注解的作用,详解Ribbon如何在客户端实现负载均衡,涵盖负载均衡原理、算法分类、硬件与软件方案对比,并介绍Ribbon自定义策略及饥饿加载优化。通过源码流程与配置示例,帮助读者全面掌握Ribbon核心机制,为后续学习Nacos、Gateway等负载均衡实现打下基础。(238字)
|
5月前
|
存储 Java Linux
Nacos注册中心
Nacos安装部署指南:下载稳定版压缩包,通过startup脚本启动,支持Windows/Linux/Mac;配置application.properties避免端口冲突。整合Spring Cloud Alibaba后,替换Eureka为Nacos注册中心,修改配置文件指向Nacos地址并设置集群名,实现服务自动注册与发现。支持多集群部署,提升调用效率与容灾能力。(238字)
|
5月前
|
负载均衡 Java Nacos
Eureka服务注册与发现
本节介绍Eureka注册中心的搭建与使用,包括服务端工程创建、依赖配置、启动类及YAML配置,并完成user-service服务注册。通过多实例部署为后续Ribbon负载均衡做准备,功能实现后将用Nacos替代Eureka进行深入探讨。(238字)
|
5月前
|
IDE Java 关系型数据库
SpringCloud工程部署启动
本文介绍Spring Boot微服务工程搭建的两种方案:完整工程导入或从零创建。包含父工程与子模块(order-service、user-service)构建步骤,详细配置pom依赖及Maven资源管理,确保项目结构清晰、依赖正确加载,助力快速启动开发环境。(238字)
|
5月前
|
Java 大数据
ArrayList扩容机制
ArrayList的add方法添加元素时,先调用ensureCapacityInternal()确保容量。首次添加时,最小容量为1,经Math.max后扩容至10。通过grow()方法实现动态扩容,新容量为旧容量的1.5倍(oldCapacity + (oldCapacity >> 1))。当元素数超过当前容量时触发扩容,保证集合动态增长。length是数组属性,length()是字符串方法,size()是集合元素个数获取方法。

热门文章

最新文章