【JavaWeb学习】myabtis.xml一次性加载mapper相关的文件
一、运行环境:
JDK1.8 + apache-tomcat-8.5.100
二、相关的jar包:
序号 | Jar 包名 | 版本 | 作用 | 国内镜像直链(华为云,2025-10 有效) |
---|---|---|---|---|
1 | jackson-annotations | 2.17.2 | JSON 注解 | https://repo.huaweicloud.com/repository/maven/com/fasterxml/jackson/core/jackson-annotations/2.17.2/jackson-annotations-2.17.2.jar |
2 | jackson-core | 2.17.2 | JSON 核心 | https://repo.huaweicloud.com/repository/maven/com/fasterxml/jackson/core/jackson-core/2.17.2/jackson-core-2.17.2.jar |
3 | jackson-databind | 2.17.2 | JSON 绑定 | https://repo.huaweicloud.com/repository/maven/com/fasterxml/jackson/core/jackson-databind/2.17.2/jackson-databind-2.17.2.jar |
4 | javax.servlet-api | 4.0.1 | Servlet 4.0 API(provided) | https://repo.huaweicloud.com/repository/maven/javax/servlet/javax.servlet-api/4.0.1/javax.servlet-api-4.0.1.jar |
5 | logback-classic | 1.4.11 | SLF4J 实现 | https://repo.huaweicloud.com/repository/maven/ch/qos/logback/logback-classic/1.4.11/logback-classic-1.4.11.jar |
6 | mybatis | 3.5.15 | ORM 核心 | https://repo.huaweicloud.com/repository/maven/org/mybatis/mybatis/3.5.15/mybatis-3.5.15.jar |
7 | mysql-connector-j | 8.0.33 | MySQL JDBC | < https://mirrors.tencent.com/nexus/repository/maven-public/com/mysql/mysql-connector-j/8.0.32/mysql-connector-j-8.0.32.jar> |
8 | spring-plugin-core | 2.0.0.RELEASE | SpringFox 基础插件 | https://repo.huaweicloud.com/repository/maven/org/springframework/plugin/spring-plugin-core/2.0.0.RELEASE/spring-plugin-core-2.0.0.RELEASE.jar |
9 | spring-plugin-metadata | 2.0.0.RELEASE | SpringFox 元数据 | https://repo.huaweicloud.com/repository/maven/org/springframework/plugin/spring-plugin-metadata/2.0.0.RELEASE/spring-plugin-metadata-2.0.0.RELEASE.jar |
10 | springfox-core | 2.10.5 | 注解解析/扫描 | https://repo.huaweicloud.com/repository/maven/io/springfox/springfox-core/2.10.5/springfox-core-2.10.5.jar |
11 | springfox-schema | 2.10.5 | 模型解析 | https://repo.huaweicloud.com/repository/maven/io/springfox/springfox-schema/2.10.5/springfox-schema-2.10.5.jar |
12 | springfox-spi | 2.10.5 | SPI 扩展 | https://repo.huaweicloud.com/repository/maven/io/springfox/springfox-spi/2.10.5/springfox-spi-2.10.5.jar |
13 | springfox-swagger-ui | 2.10.5 | 原生 swagger-ui(可被 knife4j 覆盖) | https://repo.huaweicloud.com/repository/maven/io/springfox/springfox-swagger-ui/2.10.5/springfox-swagger-ui-2.10.5.jar |
14 | springfox-swagger2 | 2.10.5 | Swagger2 核心实现 | https://repo.huaweicloud.com/repository/maven/io/springfox/springfox-swagger2/2.10.5/springfox-swagger2-2.10.5.jar |
15 | swagger-annotations | 1.6.14 | Swagger 注解定义 | https://repo.huaweicloud.com/repository/maven/io/swagger/swagger-annotations/1.6.14/swagger-annotations-1.6.14.jar |
16 | swagger-core | 1.6.14 | Swagger 模型/解析 | https://repo.huaweicloud.com/repository/maven/io/swagger/swagger-core/1.6.14/swagger-core-1.6.14.jar |
17 | swagger-models | 1.6.14 | Swagger 数据模型 | https://repo.huaweicloud.com/repository/maven/io/swagger/swagger-models/1.6.14/swagger-models-1.6.14.jar |
18 | knife4j-openapi2-servlet | 1.6.9 | Knife4j 美化 UI(Servlet 环境) | https://repo.huaweicloud.com/repository/maven/com/github/xiaoymin/knife4j-openapi2-servlet/1.6.9/knife4j-openapi2-servlet-1.6.9.jar |
三、mybatis.xml配置文件
<?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><typeAliases><package name="com.example.crud.model"/></typeAliases><environments default="dev"><environment id="dev"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://127.0.0.1:3306/demo?useSSL=false&serverTimezone=UTC"/><property name="username" value="root"/><property name="password" value="root"/></dataSource></environment></environments><mappers><mappers><mapper resource="com/example/crud/dao/UserMapper.xml"/></mappers></mappers>
</configuration>
四、修改myabtis配置文件:
办法一:
<mappers><!-- 一次性扫描 com.example.crud.dao 下所有接口 + 同名 XML --><package name="com.example.crud.dao"/></mappers>
办法二:文件通符(MyBatis 3.5.1+ 才支持
<mappers><!-- 一次性加载 classpath 里所有匹配路径的 XML --><mapper url="classpath*:com/example/crud/dao/*Mapper.xml"/>
</mappers>
办法三:Java 代码批量注册(纯 Servlet 项目可放在 Listener 里)
String packageName = "com.example.crud.dao";
Configuration cfg = sqlSessionFactory.getConfiguration();
ResolverUtil<Class<?>> resolver = new ResolverUtil<>();
resolver.find(new ResolverUtil.IsA(BaseMapper.class), packageName);
for (Class<?> mapper : resolver.getClasses()) {cfg.addMapper(mapper);
}