SSM框架中mapper和mapping.xml文件在同一个包下需要的配置

前言

当我们在开发过程中,由于maven项目本身的限制,我们不能直接把我们的mapper.xml文件和对应mapper.java接口文件放到一起,也就是不能直接放在java包中,如图:

 因为maven项目在构建打包时,会从src/main/java中获取所有的java文件然后编译,会从src/main/resources中获取配置文件等其它文件,然后打包,

所以尽管你在Spring整合Mybatis时配置也好,在Mybatis单独的配置文件中配置也好,都是会出错的:

<!--配置SqlSessionFactory工厂-->
    <bean id="sqlSessonFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!-- 扫描sql配置文件:mapper需要的xml文件 -->
        <property name="mapperLocations" value="classpath*:com/ssm/mapper/mapping/*.xml" />
    </bean>
    <!--配置mapper接口所在包-->
    <bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.ssm.mapper"/>
    </bean>

都是不会成功的!

方法:

这个时候你可以改变一下maven在打包时的配置就可以实现了:

pom.xml文件中添加配置:

<!--插件配置-->
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <!--包含了src/main/java目录下的所有xml资源配置文件-->
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <!--包含了src/main/resources目录下的所有资源配置文件,有别的格式的配置文件时,不要写成**/*.xml-->
                    <include>**/*</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>

这个时候你就可以成功配置了!

附录:

感谢以下博客:

https://blog.csdn.net/qq_38727626/article/details/81431522

还有就是:

其实下面这篇博客写的也挺好,但是我发生报错,就是你的resources目录下的文件可能会出问题,

https://blog.csdn.net/weixin_30820077/article/details/97407662

原文地址:https://www.cnblogs.com/Anxc/p/12066928.html

时间: 2024-08-29 01:01:06

SSM框架中mapper和mapping.xml文件在同一个包下需要的配置的相关文章

SSM框架中写sql在dao文件中以注解的方式

1以注解方式 //两个参数其中一个是对象需写,对象.属性 @Update("update delivery_address set consignee = #{address.consignee},country = #{address.country},city = #{address.city},address = #{address.address},phone_number = #{address.phoneNumber},telnumber = #{address.telNumber}

SSM框架中使用Spring的@Transactional注解进行事务管理

一 介绍 在企业级应用中,保护数据的完整性是非常重要的一件事.因此不管应用的性能是多么的高.界面是多么的好看,如果在转账的过程中出现了意外导致用户的账号金额发生错误,那么这样的应用程序也是不可接受的 数据库的事务管理可以有效地保护数据的完整性(PS:关于数据库的事务管理基础可以参考我以前写过的这篇文章:http://www.zifangsky.cn/385.html),但是原生态的事务操作需要写不少的代码,无疑是非常麻烦的.在使用了Spring框架的应用中,我们可以使用@Transactiona

MyBatis框架中Mapper映射配置的使用及原理解析(七) MapperProxy,MapperProxyFactory

从上文<MyBatis框架中Mapper映射配置的使用及原理解析(六) MapperRegistry> 中我们知道DefaultSqlSession的getMapper方法,最后是通过MapperRegistry对象获得Mapper实例: public <T> T getMapper(Class<T> type, SqlSession sqlSession) { final MapperProxyFactory<T> mapperProxyFactory =

MyBatis框架中Mapper映射配置的使用及原理解析(三) 配置篇 Configuration

从上文<MyBatis框架中Mapper映射配置的使用及原理解析(二) 配置篇 SqlSessionFactoryBuilder,XMLConfigBuilder> 我们知道XMLConfigBuilder调用parse()方法解析Mybatis配置文件,生成Configuration对象. Configuration类主要是用来存储对Mybatis的配置文件及mapper文件解析后的数据,Configuration对象会贯穿整个Mybatis的执行流程,为Mybatis的执行过程提供必要的配

SSM框架中以注解形式实现事务管理

上一篇博文<SSM三大框架整合详细教程>详细说了如何整合Spring.SpringMVC和MyBatis这三大框架.但是没有说到如何配置mybatis的事务管理,实现开发中,事务是必不可少的.本篇作为对上一篇的补充,说明在SSM框架中如何使用注解的形式进行事务管理. 什么是事务? 在编写业务的过程中,会需要进行事务处理,当需要执行多条插入语句时,如果前几条成功,而最后一条失败,那么我们需要回滚数据库操作,保持数据的一致性和完整性,此时,就需要利用DB的事务处理.事务是恢复和并发控制的基本单位.

SSM框架中数据库无法连接的问题

首先是SSM框架中所有的配置都是没有问题的,而且项目在其他人的环境上也能正常访问数据库:那么最有可能的就是数据库版本的问题导致数据库连接不上,服务器给我的报错是: 15:37:25.902 [C3P0PooledConnectionPoolManager[identityToken->1hge4n5a4xz7ohp18togle|54666959]-HelperThread-#0] DEBUG c.m.v.resourcepool.BasicResourcePool - An exception

MyBatis框架中Mapper映射配置的使用及原理解析(二) 配置篇 SqlSessionFactoryBuilder,XMLConfigBuilder

在 <MyBatis框架中Mapper映射配置的使用及原理解析(一) 配置与使用> 的demo中看到了SessionFactory的创建过程: SqlSessionFactory sessionFactory = null; String resource = "mybatisConfig.xml"; try { sessionFactory = new SqlSessionFactoryBuilder().build(Resources .getResourceAsRea

SSM框架中日志的打印和单例模式(六)

一.SSM框架中日志输出 1.src根目录下配置log4j.properties文件 #设置输出级别和输出目的地# log4j.rootLogger=info, stdout,logfile #把信息输出到控制台# log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.err log4j.appender.stdout.layout=org.apache.log4j.S

MyBatis框架中Mapper映射配置的使用及原理

(Mapper用于映射SQL语句,可以说是MyBatis操作数据库的核心特性之一,这里我们讨论java的MyBatis框架中Mapper映射配置的使用及原理解析,包括对mapper.xml配置文件的读取流程解读) Mapper的内置方法 model层就是实体类,对应数据库的表.controller层是Servlet,主要是负责业务模块流程的控制,调用service接口的方法,在struts2就是Action.Service层主要做逻辑判断,Dao层是数据访问层, 原文地址:https://www