1.无法加载mapper.xml的问题
在使用idea整合mybatis的时候,把注解的方式更改为xml的配置之后,一直出错。spring配置文件也已经正确的声明了mapper.xml文件的位置以及mapper.xml对应的接口文件以及id都全部正确的情况下,涉及持久层操作的报错显示未找到对应接口下的对应方法,错误显示如下:
HTTP状态 500 - 内部服务器错误
类型 异常报告
消息 Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.nl.dao.AccountMapper.findById
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.nl.dao.AccountMapper.findById
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
javax.servlet.http.HttpServlet.service(HttpServlet.java:626)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
原因:是因为项目没有加载mapper.xml文件,maven工程中自动默认不会去打包文件包中的配置文件,因此在运行程序之后找不到我们所需要的配置文件。
解决方法:
1.先找到我们自己的mapper.xml文件位置
2.在maven的pom下插入如下代码:
<build>
<!-- 如果不添加此节点mybatis的mapper.xml文件都会被漏掉。 -->
<resources>
<resource>
<!--填写主文件夹 -->
<directory>src/main/java</directory>
<includes>
<!--使打包包含这2种配置文件 -->
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<!--不使用过滤器 -->
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
2.Spring 编程式事务管理xml文件配置问题
如果报错出现:
org.springframework.beans.NotWritablePropertyException: Invalid property
解决方法:
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!--注入数据库连接池-->
<property name="dataSource " ref="dataSource"/>
</bean>
注意事项:
在中property属性中name的dataSource中多了一个空格。
启发:
当解决问题之后,会发现自己对SSM框架的整合更加熟练,但是也同时提醒了自己需要注意的东西会有更多还需要学习的东西也远不止现有的这些东西。每次遇到问题不要想着放弃,多努力努力总有解决的办法。生活和学习绝不该止步于此,要明白大鹏一日同风起,扶摇直上九万里!我们也不该因自己现在的情况就自甘堕落,要懂得时人不识凌云木,直待凌云始道高!