查询一个实体类对象和查询一个list集合
当查询的数据为多条时,不能使用实体类作为返回值,否则会抛出异TooManyResultsException;但是若查询的数据只有一条,可以使用实体类或集合作为返回值
SelectMapper 接口
public interface SelectMapper {
/**
* 根据id查询用户信息
* @param id
* @return
*/
User getUserById(@Param("id") Integer id);
/**
* 查询所有的用户信息
* @return
*/
List<User> getAllUser();
}
MyBatis的映射文件 SelectMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.atguigu.mybatis.mapper.SelectMapper">
<!--User getUserById(@Param("id") Integer id);-->
<select id="getUserById" resultType="User">
select * from t_user where id = #{id}
</select>
<!--List<User> getAllUser();-->
<select id="getAllUser" resultType="User">
select * from t_user
</select>
</mapper>
测试
public class SelectMapperTest {
@Test
public void testGetUserById(){
SqlSession sqlSession = SqlSessionUtil.getSqlSession();
SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);
User user = mapper.getUserById(1);
System.out.println(user);
}
@Test
public void testGetAllUser(){
SqlSession sqlSession = SqlSessionUtil.getSqlSession();
SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);
List<User> list = mapper.getAllUser();
list.forEach(System.out::println);
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/2fb09b42c33520e3ea066063ff1dc7d8.png)
![](https://i-blog.csdnimg.cn/blog_migrate/86acd91a08285480014ed932beb444bf.png)