MyBatis的各种查询功能
1、若查询的数据只有一条
- a.可以通过实体类对象接收
- b.可以通过List集合接收
- c.可以通过Map集合接收
<!--User getUserById(@Param("id") int id);-->
<select id="getUserById" resultType="User">
select * from t_user where id = #{id}
</select>
<!--List<User> getUserList();-->
<select id="getUserList" resultType="User">
select * from t_user
</select>
<!--Map<String, Object> getUserToMap(@Param("id") int id);-->
<select id="getUserToMap" resultType="map">
select * from t_user where id = #{id}
</select>
<!--结果:{password=123456, sex=男, id=1, age=23, username=admin}-->
2、若查询的数据有多条
- a.可以通过实体类型的List集合接收
- b.Map类型的LIst集合接收
- c.在mapper接口的方法上添加@MapKey注解
<!--Map<String, Object> getAllUserToMap();-->
<!--将表中的数据以map集合的方式查询,一条数据对应一个map;若有多条数据,就会产生多个map集合,此时可以将这些map放在一个list集合中获取 -->
<select id="getAllUserToMap" resultType="map">
select * from t_user
</select>
<!--
结果:
[{password=123456, sex=男, id=1, age=23, username=admin},
{password=123456, sex=男, id=2, age=23, username=张三},
{password=123456, sex=男, id=3, age=23, username=张三}]
-->
<!--
@MapKey("id")
Map<String, Object> getAllUserToMap();
将表中的数据以map集合的方式查询,一条数据对应一个map;若有多条数据,就会产生多个map集合,并且最终要以一个map的方式返回数据,此时需要通过@MapKey注解设置map集合的键,值是每条数据所对应的map集合
-->
<select id="getAllUserToMap" resultType="map">
select * from t_user
</select>
<!--
结果:
{
1={password=123456, sex=男, id=1, age=23, username=admin},
2={password=123456, sex=男, id=2, age=23, username=张三},
3={password=123456, sex=男, id=3, age=23, username=张三}
}
-->
3、模糊查询
通过用户名进行模糊查询
<!--List<User> getUserByLike(@Param("username") String username);-->
<select id="getUserByLike" resultType="User">
<!--select * from t_user where username like '%${mohu}%'-->
select * from t_user where username like concat('%',#{mohu},'%')
<!--select * from t_user where username like "%"#{mohu}"%"-->
</select>