MyBatis配置文件详解

下面是一个典型的 MyBatis 配置文件

XML 复制代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- 全局参数 -->
    <settings>
        <!-- 使全局的映射器启用或禁用缓存 -->
        <setting name="cacheEnabled"             value="true"   />
        <!-- 允许JDBC 支持自动生成主键 -->
        <setting name="useGeneratedKeys"         value="true"   />
        <!-- 配置默认的执行器.SIMPLE就是普通执行器;REUSE执行器会重用预处理语句(prepared statements);BATCH执行器将重用语句并执行批量更新 -->
        <setting name="defaultExecutorType"      value="SIMPLE" />
		<!-- 指定 MyBatis 所用日志的具体实现 -->
        <setting name="logImpl"                  value="SLF4J"  />
        <!-- 使用驼峰命名法转换字段 -->
		<!-- <setting name="mapUnderscoreToCamelCase" value="true"/> -->
	</settings>
	
</configuration>

详细解析如下

这段代码是 MyBatis 框架的配置文件的一部分。MyBatis 是一个流行的持久层框架,它将对象与数据库中的数据进行映射。这个配置文件是用 XML 编写的,通常命名为 mybatis-config.xml。下面是对这段代码的详细解析:

复制代码
<?xml version="1.0" encoding="UTF-8" ?>

这是 XML 声明,指定了该文件是一个 XML 文件,版本是 1.0,使用的编码是 UTF-8。

复制代码
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">

这是文档类型声明(DOCTYPE),它指出这个 XML 文件遵循 MyBatis 3.0 版的 DTD(文档类型定义)。DTD 定义了文档结构以及允许的元素和属性。这里指定了 MyBatis 的官方 DTD 的 URL,XML 解析器可以通过这个 URL 来验证 XML 文档的合法性。

复制代码
<configuration>

这是 XML 文件的根元素 <configuration>,所有的 MyBatis 配置项都包含在这个元素内。

复制代码
<settings>

<settings> 元素包含一系列的 <setting> 子元素,这些子元素定义了 MyBatis 的全局配置参数。

复制代码
<setting name="cacheEnabled" value="true" />

这个 <setting> 元素启用了 MyBatis 的全局缓存。当这个参数被设置为 true 时,MyBatis 会缓存映射语句的结果。这可以提高查询效率,因为相同的查询可以直接从缓存中获取结果,而不需要再次访问数据库。

复制代码
<setting name="useGeneratedKeys" value="true" />

这个 <setting> 元素允许 JDBC 支持自动生成的主键,这意味着当你插入数据时,如果数据库表的主键是自动生成的(例如,自动增长的整数),MyBatis 可以获取并使用这个自动生成的键值。

复制代码
<setting name="defaultExecutorType" value="SIMPLE" />

defaultExecutorType 设置指定了 MyBatis 使用的默认执行器类型。SIMPLE 执行器是 MyBatis 的标准执行器,每次都会创建一个新的预处理语句(prepared statement)。其他选项包括 REUSE,它会重用预处理语句,以及 BATCH,它会重用语句并执行批量更新,这可以提高批量操作的性能。

复制代码
<setting name="logImpl" value="SLF4J" />

这个 <setting> 元素指定 MyBatis 应该使用的日志实现。在这个例子中,它被设置为 SLF4J,即简单日志门面(Simple Logging Facade for Java),这是一个 Java 日志的抽象层,允许用户在后端使用不同的日志框架(如 log4j、java.util.logging 等)。

复制代码
<!-- <setting name="mapUnderscoreToCamelCase" value="true"/> -->

这是一个被注释掉的 <setting> 元素。如果取消注释(即删除 <!-- 和 -->),它将启用字段的自动驼峰命名法转换,即数据库中的下划线风格(如 user_name)自动映射到 Java 对象的驼峰命名属性(如 userName)。

复制代码
</settings>
</configuration>

这些是关闭 <settings> 和 <configuration> 标签的结束标记,表示相关配置的结束。所有 <setting> 元素必须在 <settings> 元素内部,而 <settings> 元素则必须在 <configuration> 根元素内部。

以上就是对您提供的 MyBatis 配置文件代码的详细解析。这些设置通常会根据实际项目的需要进行调整。

相关推荐
阿屿26 分钟前
从零手搓 AI 伴侣(二):好感度通胀危机,与它的「货币政策」
java·人工智能
灿飞33 分钟前
Kotlin与Java虚拟机十一:类与属性:构造顺序、backing field 与显式 backing field
java·后端·kotlin
aiks_yuan36 分钟前
40亿个QQ号 1G内存怎么去重:Java BitSet 装不下,long 数组位图 512MB 实测 46 秒(JDK 17)
java
文丑颜不良啊1 小时前
LeetCode2521~2540题目解析
java·leetcode
杨凯凡1 小时前
Spring Framework 7 HTTP Interface 实战:声明式 RestClient、超时与测试
java·spring·http
吴名氏.1 小时前
Java转AI Agent教程(第十二周)检索与切分
java·开发语言·人工智能·ai·ai agent
瑞雪兆丰年兮2 小时前
JavaWeb-day10-SpringBootWeb案例
java·开发语言·javaweb·web
Rain的Java大神之路2 小时前
你背的Spring答案,全是5.x时代的:7.0.8源码一翻,80%的博客都过时了
java·后端·面试
这个昵称不容易3 小时前
考试报名系统的设计与实现(SpringBoot + MySQL + Vue 三角色平台)
java·springboot·毕设
Adellle3 小时前
设计模式指南 (Java 版) ㊁
java·开发语言·设计模式