mybatis plus第一讲 pom.xml文件

本文介绍了解决Maven项目中出现的Multiple annotations found at this line: Missing artifact等问题的方法,通过更新POM文件来避免错误,并提供了一个示例POM文件。

如果你新建一个maven项目,只加了一个pom.xml文件,但是也报错的话,比如报 Multiple annotations found at this line:Missing artifact org.mortbay.jetty:jet等一大长串错误。说明maven升级了,你要双击进入pom.xml后,点击出错的地方进行升级,升级后就不会报错了。本人在此搞了半天才明白。

总的来说是将原来的mybatis的<dependencies>部分去掉,加上mybatis-plus包部分,注意后面的红色部分。

pom文件的内容如下

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.jintingbo.www</groupId>
<artifactId>mybatisplus</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>mybatisplus Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<!-- spring版本号 -->
<spring.version>4.3.7.RELEASE</spring.version>
<!-- log4j日志文件管理包版本 -->
<slf4j.version>1.7.7</slf4j.version>
<log4j.version>1.2.17</log4j.version>
<druid.version>1.1.0</druid.version>
</properties>
<dependencies>
<!--Apache Shiro所需的jar包 -->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-web</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<!-- 表示开发的时候引入,发布的时候不会加载此包 -->
<scope>test</scope>
</dependency>
<!-- spring核心包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- 导入Mysql数据库链接jar包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.30</version>
</dependency>
                <!-- 导入mybatis plus包,注意要原生的mybatis包都删除掉,防止两个的依赖的版本相冲突在pom.xml上产生一个红叉 -->
<dependency>
   <groupId>com.baomidou</groupId>
   <artifactId>mybatis-plus</artifactId>
   <version>2.3</version>
</dependency>

<!-- 导入java ee jar 包 -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
</dependency>
<!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.2.2</version>
</dependency>
<!-- JSTL标签类 -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- 日志文件管理包 -->
<!-- log start -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<!-- 格式化对象,方便输出日志 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.41</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- log end -->
<!-- 导入spring3.X版本支持的JSON -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<!-- 导入spring4.X版本支持的json -->
<dependency>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-core</artifactId>
                        <version>2.8.5</version>
                </dependency>
                <dependency>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-databind</artifactId>
                        <version>2.8.5</version>
                </dependency>
                <dependency>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-annotations</artifactId>
                        <version>2.8.5</version>
                </dependency>
<!-- 上传组件包 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
</dependencies>
<build>
<finalName>mybatisplus</finalName>
</build>
</project>


<think>好的,我现在要解决用户关于MyBatis-Plus项目中mapper.xml文件存放位置的问题。首先,我需要回顾一下MyBatisMyBatis-Plus的基本知识,确保自己理解正确。 用户提到的引用中有几个关键点。引用[1]和[2]提到mapper-locations配置项,通常是在application.yml或application.properties中设置。例如,classpath:mapper/*.xml或者更具体的路径如classpath:com/xyxy/srb/core/mapper/xml/*.xml。这说明配置文件的位置需要与这个路径匹配。 引用[3]指出MyBatis-Plus可以不用写mapper.xml,但用户显然需要用到自定义SQL,所以必须配置。而引用[4]提到了xml文件中的配置问题,但用户的问题是关于存放位置,可能相关但次要。 接下来,我需要确定常见的存放位置。传统MyBatis项目通常将mapper.xml放在src/main/resources下的对应包路径,比如resources/mapper目录。而在Maven或Gradle项目中,src/main/java下的xml文件默认不会被复制到classpath,除非特别配置。但用户引用[2]提到有人将mapper.xml放在src/main/java目录下,这可能通过配置pom.xml的resources插件实现,不过这可能引发问题,需要确认是否正确。 最佳实践应该是什么?根据官方文档或社区推荐,通常建议将xml文件放在resources目录下的对应包结构中,这样构建工具会自动包含它们。例如,resources/com/example/mapper/xxx.xml,并在配置中指定mapper-locations: classpath*:com/example/mapper/**/*.xml。 同时,需要考虑到多模块项目的情况,如果模块结构复杂,可能需要使用classpath*:来确保所有模块的xml文件都被扫描到。 此外,需要注意yml配置中的路径是否正确,比如是否使用了正确的通配符,路径分隔符是否使用/而不是.等。 可能的错误情况包括:路径配置错误导致xml文件未被扫描到,文件放置位置错误导致编译后不存在于target/classes目录,或文件名、命名空间与Mapper接口不匹配。 最后,总结步骤:确定存放位置(resources目录下的对应包结构),正确配置mapper-locations,验证构建后的文件是否被正确打包,检查日志是否有加载失败的提示。</think>在MyBatis-Plus项目中,$mapper.xml$ 文件的存放位置需遵循以下最佳实践: --- ### 1. **存放路径的两种常见方式** #### **方式一:`src/main/resources` 目录下** - **推荐路径**:`src/main/resources/mapper/*.xml` 或按包结构分类:`src/main/resources/com/example/mapper/*.xml` - **配置示例**(在 `application.yml` 中): ```yaml mybatis-plus: mapper-locations: classpath:mapper/*.xml ``` 若按包结构存放: ```yaml mybatis-plus: mapper-locations: classpath*:com/example/mapper/**/*.xml ``` - **优势**:Maven/Gradle默认会将 `resources` 目录下的文件打包到 `classpath`,无需额外配置[^2][^3]。 #### **方式二:`src/main/java` 目录下** - **路径示例**:`src/main/java/com/example/mapper/xml/*.xml` - **配置示例**: ```yaml mybatis-plus: mapper-locations: classpath*:com/example/mapper/xml/*.xml ``` - **关键步骤**:需在 `pom.xml` 中添加配置,确保 XML 文件被编译到 `target/classes`: ```xml <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build> ``` - **风险**:可能导致 Java 代码和 XML 文件混杂,降低可维护性[^2]。 --- ### 2. **最佳实践建议** 1. **优先选择 `resources` 目录** 将 XML 文件与 Java 代码分离,避免路径配置冲突。 2. **使用通配符 `classpath*:`** 在多模块项目中确保扫描到所有路径,例如: ```yaml mybatis-plus: mapper-locations: classpath*:mapper/**/*.xml ``` 3. **检查编译后的 `target/classes`** 确保 XML 文件最终出现在 `target/classes/mapper` 或对应包路径中[^4]。 --- ### 3. **常见问题排查** - **报错 “Invalid bound statement (not found)”** 通常由 XML 文件未被扫描到或命名空间与 Mapper 接口不匹配导致[^4]。 - **路径配置错误示例** 错误:`classpath:com.example.mapper/*.xml`(使用 `.` 分隔路径) 正确:`classpath:com/example/mapper/*.xml`(使用 `/` 分隔路径) ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

庭博

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值