当前位置: 首页 > news >正文

Mybatis进阶

1. 核心配置文件 (configuration)

MyBatis 的核心配置文件,通常命名为 mybatis-config.xml​,是 MyBatis 初始化时加载的主配置文件。它包含了配置 MyBatis 行为的设置和属性信息。

包含一下内容:
configuration(配置)
properties(属性)
settings(设置)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境配置)
environment(环境变量)
transactionManager(事务管理器)
dataSource(数据源)
databaseIdProvider(数据库厂商标识)
mappers(映射器)

eg:常见如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!--核心配置文件--><environments default="development"><environment id="development"><transactionManager type="JDBC"/><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><mappers><mapper resource="mapper/UserMapper.xml"></mapper></mappers>
</configuration>

2. 环境配置 (environments)

环境配置允许 MyBatis 配置成适应多种环境,如开发环境、测试环境和生产环境。虽然可以配置多个环境(注意default和id,实现绑定环境主要看default绑定哪套id),但每个 SqlSessionFactory​ 实例只能选择一种环境。

<!-- 2. 环境配置:默认使用 development -->
<environments default="development"><environment id="development"><!-- 事务管理器 --><transactionManager type="JDBC"/><!-- 数据源:POOLED 连接池 --><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>
  • ​default​:指定默认的环境 ID。

  • ​environment​:每个 environment​ 元素定义一个环境配置。

    • ​id​:环境的唯一标识。
    • ​transactionManager​:事务管理器配置,type="JDBC"​ 使用 JDBC 的事务管理。
    • ​dataSource​:数据源配置,type="POOLED"​ 使用 MyBatis 内置的连接池。

3. 属性 (properties)

属性配置用于引入外部配置文件,使得数据库连接等配置信息可以外部化,便于维护和切换环境。

db.propreties
driver = com.mysql.cj.jdbc.Driver
url = jdbc:mysql://localhost:3306/mydb?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=UTC
username = root
password = WPS5518836wps
<!-- 3. 属性:引入外部 db.properties,同名 key 以 db.properties 为准 -->
<properties resource="db.properties"><!-- 可在此处补充默认属性 --><property name="username" value="root"/><property name="password" value="11111"/>
</properties>
  • ​resource​:指定外部属性文件的位置。
  • 内部的 <property>​ 可用于提供默认值或覆盖外部文件中的属性,倘若是默认值和外部文件中的属性共有的文件,则以默认值优先。

4. 类型别名 (typeAliases)

类型别名用于为 Java 类型设置一个短的名字,减少类完全限定名的冗余。

<!-- 4. 类型别名:给实体类起短名 -->
<typeAliases><!-- 单个类 --><!-- <typeAlias type="com.example.pojo.User" alias="User"/> --><!-- 扫描整个包:默认别名 = 类名首字母小写 --><package name="com.example.pojo"/>
</typeAliases>
  • ​<typeAlias>​:为单个类指定别名。
  • ​<package>​:扫描包下的所有类,并自动生成别名,别名默认为类名(首字母小写)。

5. 设置 (settings)

设置提供了一些 MyBatis 的全局配置选项,影响 MyBatis 的运行行为。

<!-- 5. 设置:常用全局行为 -->
<settings><!-- 日志实现 --><setting name="logImpl" value="STDOUT_LOGGING"/><!-- 开启二级缓存 --><setting name="cacheEnabled" value="true"/><!-- 开启驼峰命名自动映射 --><setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>

常见的设置选项包括:

  • ​logImpl​:指定日志实现。
  • ​cacheEnabled​:是否开启二级缓存。
  • ​mapUnderscoreToCamelCase​:是否开启驼峰命名自动映射。

6. 映射器 (mappers)

映射器配置用于注册所有的 Mapper 文件或接口,使得 MyBatis 能够找到并加载 SQL 映射。

<!-- 6. 映射器:注册所有 Mapper.xml 或接口 -->
<mappers><!-- 1) 类路径方式 --><mapper resource="mapper/UserMapper.xml"/><!-- 2) 扫描整个包(接口+注解) --><!-- <package name="com.example.mapper"/> -->
</mappers>
  • ​<mapper>​:通过资源路径或类名注册单个 Mapper 文件或接口。
  • ​<package>​:扫描包下的所有 Mapper 接口,并自动注册。
http://www.xdnf.cn/news/1271125.html

相关文章:

  • 机器学习第七课之支持向量机SVM
  • 本地进行语音文字互转
  • P1890 gcd区间
  • C++11中的移动语义
  • 【无标题】AI 赋能日常效率:实用案例与操作心得分享
  • B.10.01.6-DDD领域驱动设计:从理论到落地的完整指南
  • 数据挖掘2.6 Perceptron Modeling 感知器建模
  • Qdrant Filtering:must / should / must_not 全解析(含 Python 实操)
  • 心灵笔记:正念冥想
  • 解决python错误:playwright._impl._errors.TimeoutError: Timeout 30000ms exceeded.
  • 3.5.2_1 随机访问介质访问控制
  • Python中的Lambda函数详解
  • 【排序算法】④堆排序
  • NTP /Chrony 网络时间协议
  • Leetcode-19. 删除链表的倒数第 N 个结点
  • 比较useCallback、useMemo 和 React.memo
  • 机器学习 K-Means聚类 无监督学习
  • 第4章 程序段的反复执行for语句P115练习题(题及答案)
  • 元宇宙技术如何改变社交方式?
  • 哈希与安全
  • pgAdmin 仪表盘的system部分不能显示,报SYSTEM_STATS扩展没有安装
  • C++ 中的智能指针
  • Qt 综述:从基础到一般应用
  • 机器翻译中的语言学基础详解(包括包括语法、句法和语义学等)
  • 记一次奇异的bug
  • n8n 入门指南:更适合跨境出海搞钱的AI智能体
  • 基于 InfluxDB 的服务器性能监控系统实战(一)
  • vue3上传的文件在线查看
  • 【linux基础】Linux命令提示符解析与操作指南
  • 如何在 Ubuntu 24.04 LTS Linux 上安装 Azure Data Studio