IDEA maven项目下测试mybatis例子,使用mappper class或package引入mapper映射文件,总是报错Invalid bound statement(所有配置完全正确)
2017-06-29 11:31
1246 查看
困扰几个小时,终于查到解决办法及原因(可以直接到最后看解决方案)
环境就是用IDEA搭建的maven项目,主要jar包引入配置如下
MapperTest.java
运行测试代码,报错信息如下
检查了n遍配置和代码,没有发现问题,而且使用mapper的resource单独配置指向resources文件夹下mapper映射文件(如图)就没问题
后来想到是解析xml的问题,到编译后的文件夹下查看,没有UserMapper.xml文件
然后找解决方案,原来是IDEA maven项目默认不会把src下除java文件外的文件打包到classes文件夹下,需要配置如下
或者手动把文件拷贝到classes文件夹对应的目录下,结果如下图
环境就是用IDEA搭建的maven项目,主要jar包引入配置如下
import com.hjp.mapper.UserMapper; import com.hjp.po.User; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Before; import org.junit.Test; import java.io.IOException; import java.io.InputStream; public class MapperTest { SqlSessionFactory factory; @Before public void setUp() throws IOException { String resource="sqlMapConfig.xml"; InputStream inputStream= Resources.getResourceAsStream(resource); factory=new SqlSessionFactoryBuilder().build(inputStream); } @Test public void func1() throws Exception { SqlSession session=factory.openSession(); UserMapper userMapper=session.getMapper(UserMapper.class); User user=userMapper.findUserById(1); System.out.println(user); session.close(); } }
MapperTest.java
运行测试代码,报错信息如下
检查了n遍配置和代码,没有发现问题,而且使用mapper的resource单独配置指向resources文件夹下mapper映射文件(如图)就没问题
后来想到是解析xml的问题,到编译后的文件夹下查看,没有UserMapper.xml文件
然后找解决方案,原来是IDEA maven项目默认不会把src下除java文件外的文件打包到classes文件夹下,需要配置如下
<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> <!--默认是true--> <!--<filtering>true</filtering>--> </resource> </resources> </build>
或者手动把文件拷贝到classes文件夹对应的目录下,结果如下图
相关文章推荐
- 03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma
- MyBatis框架核心之(二)Mapper配置文件使用接口映射
- 03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma
- 使用mybatis-generator自动生成实体类,接口实现类和Mapper映射配置文件
- 使用generator自动生成Mybatis映射配置文件
- IDEA配置项目及启动(web.xml引mybatis配置文件总是出现错误)
- 深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap
- Mybatis使用generator自动生成映射配置文件信息
- Mybatis使用generator自动生成映射配置文件信息
- MyBatis使用大全(4)------XML映射文件配置
- Mybatis使用generator自动生成映射配置文件信息
- mybatis源码学习之执行过程分析(2)——config.xml配置文件和mapper.xml映射文件解析过程
- Mybatis使用generator自动生成映射配置文件信息
- Mybatis下mapper映射文件配置之insert、update、delete
- 深入浅出Mybatis系列(七)---mapper映射文件配置之insert、update、delete
- Mybatis第六篇【配置文件和映射文件再解读、占位符、主键生成与获取、Mapper代理】
- 深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap
- Spring整合JUnit4测试,使用注解引入一个或多个配置文件
- Mybatis使用generator自动生成映射配置文件信息
- Mybatis使用generator自动生成映射配置文件信息