常见配置

简介: MyBatis配置优先级:方法参数 > resource/url > properties内属性。支持多环境配置,通过environments指定,默认使用development。事务管理支持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 几个常见配置属性
设置名 描述 有效值 默认值
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 即可。可以接受环境配置的两个方法签名是:
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 模块会使用自带的管理器来覆盖前面的配置。这两种事务管理器类型都不需要设置任何属性。

相关文章
|
3月前
|
Linux 数据安全/隐私保护 虚拟化
虚拟机安装(CentOS7)
准备CentOS7镜像及VMware Workstation工具,可使用提供的百度云链接下载。通过VMware创建虚拟机,参考指定教程完成安装,默认用户名为root,密码由用户自设。确保电脑满足运行需求。(236字符)
|
3月前
|
小程序 Java
微信通知
基于企业微信与小程序集成,通过appId和secret获取access_token,实现消息发送。需配置企业微信及绑定小程序,使用Java异步调用接口,示例包含用户信息实体类定义,支持userid、name等字段设置,便于消息推送与用户管理。(238字)
|
3月前
|
Kubernetes Java 应用服务中间件
开发篇(脚手架下载)
本文介绍基于SpringCloud+Kubernetes的微服务开发实践,聚焦EDAS 3.0在项目初始化与本地启动环节的开发者体验优化。通过阿里云start.aliyun.com脚手架快速生成标准工程,结合Cloud Toolkit插件一键拉起本地注册中心,实现应用零配置接入,大幅提升开发效率。后续将深入讲解联调、部署等场景。
|
3月前
|
消息中间件 Linux Shell
RabbitMQ部署指南
本文详细介绍RabbitMQ在CentOS7上基于Docker的单机与集群部署方案。涵盖镜像拉取、容器运行、DelayExchange插件安装;深入讲解普通模式与镜像模式集群搭建,包括cookie配置、网络设置、高可用测试,并引入3.8版本新特性——仲裁队列,实现数据冗余与集群扩容,提升系统可靠性与可扩展性。
|
3月前
|
存储 监控 Docker
ElasticSearch集群
Elasticsearch集群通过分片与副本机制解决海量数据存储及单点故障问题。将索引拆分为多个shard分布于不同节点,提升存储与性能;通过replica实现数据高可用。利用docker-compose可快速搭建三节点集群,结合cerebro监控集群状态。支持分片路由、分布式查询与故障自动转移,保障系统稳定高效运行。(238字)
|
3月前
|
JSON 自然语言处理 算法
DSL语法、搜索结果处理
本文详细介绍Elasticsearch的搜索功能,涵盖DSL查询(全文检索、精确查询、地理查询、复合查询)、搜索结果处理(排序、分页、高亮)及RestClient实现,并结合黑马旅游项目实战,完成酒店搜索、过滤、竞价排名等功能,助力掌握ES核心搜索技术。
|
3月前
|
XML JSON Java
什么是RESTful
RESTful是一种基于资源的API设计规范,主张用URI表示资源,HTTP动词(GET/POST/PUT/DELETE)执行操作,实现统一、标准的接口风格。它解决传统接口路径混乱、行为不规范问题,提升可读性与可维护性,使系统更易扩展和协作。
|
3月前
|
消息中间件 存储 监控
Mac系统安装教程
RabbitMQ是基于AMQP协议的开源消息代理,支持异步通信、解耦服务,广泛用于分布式与微服务架构。具备高可靠、灵活路由、持久化、可扩展等特性,支持多种消息模式。可通过Homebrew或二进制方式安装,提供Web管理界面,便于操作与监控。
|
3月前
|
存储 负载均衡 Java
Nacos注册中心
本文详细介绍Nacos的安装部署、服务注册与发现、分级模型、负载均衡策略、权重控制、环境隔离及临时/持久化实例等核心功能,涵盖Spring Cloud Alibaba整合实践,帮助开发者掌握Nacos在微服务架构中的应用,实现高效服务治理与配置管理。
|
3月前
|
负载均衡 算法 架构师
Ribbon负载均衡
本文深入解析Spring Cloud Ribbon实现客户端负载均衡的原理,涵盖@LoadBalanced注解作用、Ribbon与Eureka整合机制、负载均衡策略配置(代码与配置文件方式)、饥饿加载优化及常见负载均衡技术对比,帮助读者全面掌握Ribbon核心知识点,为后续学习Nacos、Gateway等负载均衡实现打下基础。

热门文章

最新文章