【JavaWeb学习】myabtis.xml一次性加载mapper相关的文件 - 教程

一、运行环境:

JDK1.8 + apache-tomcat-8.5.100

二、相关的jar包:

序号Jar 包名版本作用国内镜像直链(华为云,2025-10 有效)
1jackson-annotations2.17.2JSON 注解https://repo.huaweicloud.com/repository/maven/com/fasterxml/jackson/core/jackson-annotations/2.17.2/jackson-annotations-2.17.2.jar
2jackson-core2.17.2JSON 核心https://repo.huaweicloud.com/repository/maven/com/fasterxml/jackson/core/jackson-core/2.17.2/jackson-core-2.17.2.jar
3jackson-databind2.17.2JSON 绑定https://repo.huaweicloud.com/repository/maven/com/fasterxml/jackson/core/jackson-databind/2.17.2/jackson-databind-2.17.2.jar
4javax.servlet-api4.0.1Servlet 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
5logback-classic1.4.11SLF4J 实现https://repo.huaweicloud.com/repository/maven/ch/qos/logback/logback-classic/1.4.11/logback-classic-1.4.11.jar
6mybatis3.5.15ORM 核心https://repo.huaweicloud.com/repository/maven/org/mybatis/mybatis/3.5.15/mybatis-3.5.15.jar
7mysql-connector-j8.0.33MySQL JDBC< https://mirrors.tencent.com/nexus/repository/maven-public/com/mysql/mysql-connector-j/8.0.32/mysql-connector-j-8.0.32.jar>
8spring-plugin-core2.0.0.RELEASESpringFox 基础插件https://repo.huaweicloud.com/repository/maven/org/springframework/plugin/spring-plugin-core/2.0.0.RELEASE/spring-plugin-core-2.0.0.RELEASE.jar
9spring-plugin-metadata2.0.0.RELEASESpringFox 元数据https://repo.huaweicloud.com/repository/maven/org/springframework/plugin/spring-plugin-metadata/2.0.0.RELEASE/spring-plugin-metadata-2.0.0.RELEASE.jar
10springfox-core2.10.5注解解析/扫描https://repo.huaweicloud.com/repository/maven/io/springfox/springfox-core/2.10.5/springfox-core-2.10.5.jar
11springfox-schema2.10.5模型解析https://repo.huaweicloud.com/repository/maven/io/springfox/springfox-schema/2.10.5/springfox-schema-2.10.5.jar
12springfox-spi2.10.5SPI 扩展https://repo.huaweicloud.com/repository/maven/io/springfox/springfox-spi/2.10.5/springfox-spi-2.10.5.jar
13springfox-swagger-ui2.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
14springfox-swagger22.10.5Swagger2 核心实现https://repo.huaweicloud.com/repository/maven/io/springfox/springfox-swagger2/2.10.5/springfox-swagger2-2.10.5.jar
15swagger-annotations1.6.14Swagger 注解定义https://repo.huaweicloud.com/repository/maven/io/swagger/swagger-annotations/1.6.14/swagger-annotations-1.6.14.jar
16swagger-core1.6.14Swagger 模型/解析https://repo.huaweicloud.com/repository/maven/io/swagger/swagger-core/1.6.14/swagger-core-1.6.14.jar
17swagger-models1.6.14Swagger 数据模型https://repo.huaweicloud.com/repository/maven/io/swagger/swagger-models/1.6.14/swagger-models-1.6.14.jar
18knife4j-openapi2-servlet1.6.9Knife4j 美化 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 configuration
  PUBLIC "-//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);
    }
posted @ 2025-11-22 20:23  clnchanpin  阅读(26)  评论(0)    收藏  举报