查询操作需要结果映射 ResultMap或ResultType
ResultType是我们查询出来的结果对应的实体类的类型
ResultMap是我们自定义的类型,如果字段名和属性名不一致就要是用这种,或者多对一,一对多这种映射关系
在UserMapper接口文件中创建一个查询方法
User getUserById();
在UserMapper.xml映射文件中创建对应的sql语句,这里我们添加了结果映射resultType里面是全地址,后期学了一些其他配置文件以后可以使用别名来配置结果映射
<select id="getUserById" resultType="com.tdh.mybatis.pojo.User">
select * from t_user where id = 1
</select>
在测试文件中创建方法
@Test
public void testSelect(){
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User userById = mapper.getUserById();
System.out.println(userById);
sqlSession.close();
}
如果我们查询的是一个list集合
- 在UserMapper接口文件中
List<User> getListUser();
- 在UserMapper映射文件中写对应的sql语句,仍然使用resultType,mybatis会自动帮我们将查询出来的结果对象添加进list集合中
<select id="getListUser" resultType="com.tdh.mybatis.pojo.User">
select * from t_user
</select>
- 在测试类中测试
@Test
public void testSelectList(){
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> userById = mapper.getListUser();
for (User user : userById) {
System.out.println(user);
}
sqlSession.close();
}