MyBatis常见配置

简介: 本文介绍 MyBatis 核心配置与多环境管理,涵盖属性加载优先级(方法参数 > resource/url > properties 元素)、关键配置项如缓存、延迟加载、执行器类型等,并详解 environments 环境配置及事务管理机制(JDBC 与 MANAGED),适用于多数据源场景。

1.前言mybatis官网Java-api地址:https://mybatis.org/mybatis-3/zh/java-api.html2.常见配置如果一个属性不止在一个地方进行配置,那么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 REUSEBATCH

SIMPLE

localCacheScope

MyBatis 利用本地缓存机制(Local Cache)防止循环引用和加速重复的嵌套查询。 默认值为 SESSION,会缓存一个会话中执行的所有查询。 若设置值为 STATEMENT,本地缓存将仅用于执行语句,对相同 SqlSession 的不同查询将不会进行缓存。

SESSION STATEMENT

SESSION

proxyFactory

指定 Mybatis 创建可延迟加载对象所用到的代理工具。

CGLIB | JAVASSIST

JAVASSIST (3.3 以上)

2.2 多环境配置多个数据源,就创建多个SqlSessionFactory,每个对应一个数据库为了指定创建哪种环境,只要将它作为可选的参数传递给 SqlSessionFactoryBuilder 即可。可以接受环境配置的两个方法签名是:

Java

运行代码复制代码

1

2

SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader, environment);

SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader, environment, properties);

如果忽略了环境参数,那么将会加载默认环境,如下所示:

Java

运行代码复制代码

1

2

SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);

SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader, properties);

environments 元素定义了如何配置环境:

XML

复制代码

1

2

3

4

5

6

7

8

9

10

11

12

13

<environments default="development">

<environment id="development">

<transactionManager type="JDBC">

<property name="..." value="..."/>

</transactionManager>

<dataSource type="POOLED">

<property name="driver" value="${driver}"/>

<property name="url" value="${url}"/>

<property name="username" value="${username}"/>

<property name="password" value="${password}"/>

</dataSource>

</environment>

</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 模块会使用自带的管理器来覆盖前面的配置。这两种事务管理器类型都不需要设置任何属性。

油炸

相关文章
|
26天前
|
负载均衡 Java 应用服务中间件
微服务网关与配置中心
本课程学习微服务网关核心功能,包括使用Spring Cloud Gateway实现路由转发、负载均衡及全局过滤器应用。掌握通过Nacos进行服务发现与配置管理,实现统一鉴权、用户身份校验及请求头信息传递,并完成前后端联调与配置热更新等实战操作。
微服务网关与配置中心
|
26天前
|
Java 数据库 微服务
微服务服务注册与发现
本课程以黑马商城项目为案例,系统讲解单体架构与微服务架构的优缺点,深入剖析微服务、分布式及云原生架构的核心理念与技术实现。通过搭建项目环境、拆分商品与购物车服务、使用Nacos实现服务注册发现、OpenFeign远程调用等实践,掌握微服务开发全流程。
微服务服务注册与发现
|
26天前
|
SQL Java 数据库连接
持久层框架MyBatisPlus
MyBatisPlus是MyBatis的增强工具,简化单表CRUD操作,通过继承BaseMapper即可实现增删改查。支持条件构造器(如QueryWrapper)、分页插件、代码生成器等功能,提升开发效率,降低SQL冗余,广泛应用于企业级项目中。
 持久层框架MyBatisPlus
|
26天前
|
Java 测试技术 Linux
生产环境发布管理
本文介绍大型团队如何通过自动化部署平台实现多环境(dev/test/pre/prod)高效发布。涵盖各环境职责、基于Jenkins+K8S的CI/CD流程、分支管理与一键部署,并结合Skywalking等工具实现日志链路追踪与快速排错,提升发布效率与系统稳定性。
 生产环境发布管理
|
26天前
|
SQL 安全 网络协议
常见的网络攻击
恶意软件、网络钓鱼、中间人攻击、DDoS攻击、SQL注入、零日漏洞及DNS隧道是常见网络威胁。恶意软件通过漏洞入侵,窃取数据或破坏系统;网络钓鱼伪装可信来源骗取信息;MitM攻击窃听通信;DDoS以海量流量瘫痪服务;SQL注入强迫数据库泄露敏感信息;零日攻击利用未修复漏洞;DNS隧道则隐蔽传输数据,危害网络安全。
常见的网络攻击
|
26天前
|
存储 安全 小程序
认识OAuth2.0
OAuth2.0是一种开放授权标准,允许第三方应用在用户授权下安全访问资源,无需获取用户账号密码。它通过令牌(token)机制实现权限控制,支持授权码、简化、密码和客户端四种模式,广泛用于第三方登录与服务间资源共享。
认识OAuth2.0
|
26天前
|
关系型数据库 应用服务中间件 nginx
容器化部署引擎Docker
Docker是一种开源容器化技术,通过镜像打包应用及依赖,实现跨环境一致运行。它利用容器隔离机制解决开发、测试、生产环境差异问题,相比虚拟机更轻量、启动更快。本文介绍Docker核心概念、架构、镜像与容器操作、数据卷挂载、Dockerfile自定义镜像及Compose编排微服务集群,并搭建私有镜像仓库,提升部署效率与系统可移植性。(239字)
|
26天前
|
SQL Java 数据库连接
持久层框架MyBatisPlus
MyBatisPlus是MyBatis的增强工具,简化单表CRUD操作,支持条件构造器、分页、逻辑删除等功能,提升开发效率。
|
26天前
|
关系型数据库 MySQL Java
开发环境搭建
配置开发环境是高效学习的第一步。要求电脑内存16G以上(推荐32G),建议配备便携显示器分屏开发。下载并安装虚拟机(CentOS 7,IP:192.168.101.68)、IDEA、Maven、Git等工具,导入课程提供的虚拟机与资料,配置SSH远程连接及本地仓库。通过Gitee Fork黑马商城项目,使用DataGrip创建数据库并导入SQL,启动Docker服务与Nginx运行前端,完成整体环境搭建,确保开发顺利进行。
|
26天前
|
Linux 数据安全/隐私保护 虚拟化
虚拟机安装(CentOS7)
本文介绍了搭建CentOS 7虚拟机的准备工作及安装步骤,包括CentOS 7镜像和VMware Workstation的获取方式(提供官网及百度云链接),并指导使用VMware创建虚拟机,推荐参考教程完成安装。安装后默认登录用户为root,密码由用户自设。