mybatis 没有结果映射如何解决:
异常报错如下:
### Error querying database. Cause: org.apache.ibatis.executor.ExecutorException: A query was run and no Result Maps were found for the Mapped Statement 'com.jin.mapper.UserMapper.getUserById'. It's likely that neither a Result Type nor a Result Map was specified.
接口类如图:
映射文件如图
执行代码也是正确的
@Test
public void testUpdate() throws IOException {
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
SqlSession sqlSession = sqlSessionFactory.openSession(true);// auto commit = true
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.getUserById();
System.out.println(user);
}
执行之后报错如标题错误。
让我们仔细看异常:其实这一句就是我们的解决方案, 我们需要去映射文件设置result type/result map
### Error querying database. Cause: org.apache.ibatis.executor.ExecutorException: A query was run and no Result Maps were found for the Mapped Statement 'com.jin.mapper.UserMapper.getUserById'. It's likely that neither a Result Type nor a Result Map was specified.
解决方法:映射文件加入resultType
<!--getUserById-->
<select id="getUserById" resultType="com.jin.pojo.User">
select * from t_user where id = 2
</select>