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 配置文件代码的详细解析。这些设置通常会根据实际项目的需要进行调整。

相关推荐
落榜程序员1 小时前
Java 基础-32-枚举-枚举的应用场景
java·开发语言
晓13131 小时前
第九章Python语言高阶加强-面向对象篇
java·开发语言
快来卷java2 小时前
JVM虚拟机篇(五):深入理解Java类加载器与类加载机制
java·jvm·mysql
禾小西4 小时前
Java 逐梦力扣之旅_[204. 计数质数]
java·算法·leetcode
ゞ 正在缓冲99%…4 小时前
leetcode295.数据流的中位数
java·数据结构·算法·leetcode·
有梦想的攻城狮5 小时前
spring-cloud-alibaba-nacos-config使用说明
java·spring·nacos·springcloud·配置中心
Yan-英杰7 小时前
【百日精通JAVA | SQL篇 | 第三篇】 MYSQL增删改查
java·数据库·sql
矛取矛求8 小时前
C++ 标准库参考手册深度解析
java·开发语言·c++
cijiancao8 小时前
23 种设计模式中的解释器模式
java·设计模式·解释器模式
南七行者8 小时前
对模板方法模式的理解
java·设计模式·模板方法