查询
查询的数据为单条实体类
- 使用实体类接受
mapper接口:
User selectUserById(int userid;
映射文件:使用实体类
<!--第二个一致,对应方法名 User selectUserById(int userid; -->
<select id="selectUserById" resultType="user">
select * from user where userid=#{userid}
</select>
- 使用Map接收
mapper接口:
Map<String ,Object> selectUserById2(@Param("userid"int userid;
映射文件:
<!-- Map<String ,Object> selectUserById(;-->
<select id="selectUserById2" resultType="map">
select * from user where userid=#{userid}
</select>
调用:以获取UserMapper接口的对象userMapper
Map<String ,Object> map=userMapper.selectUserById2(1;
System.out.println(map.toString(;
查询多条数据时
使用list集合接受,或者用list包裹map查询,或者使用map集合+Mapkey(""注解
- 使用List集合
List<User> selectAllUser(;
映射文件:
<!-- List<User> selectAllUser(;-->
<select id="selectAllUser" resultType="User">
select * from user;
</select>
调用:
//已经获取sqlSession的情况下,创建完Usermapper对象
List<User> list= userMapper.selectAllUser(;
for (User user:list {
System.out.println(user;
}
- 使用map+Mapkey("",此时将注解中的属性作为map的key,其余属性作为值
mapper接口:
@MapKey("userid"//使用userid作为键,其余属性为值
Map<String,Object> selectAllUser2(;
映射文件:
<!-- Map<String,Object> selectAllUser2(;-->
<select id="selectAllUser2" resultType="map">
select * from user;
</select>
调用:
Map<String ,Object> map2=userMapper.selectAllUser2(;
System.out.println(map2.toString(;
查询单个数量
mapper接口:
int selectCount(;
映射文件:
<!-- int selectCount(;-->
<select id="selectCount" resultType="int">
select count(* from user;
</select>
对于基本属性,均提供了其默认的别名可以直接在result Type中使用
模糊查询
List<User> selectUserByLikeName( @Param("username" String username;
映射文件:这里可以使用三种方式,第一种是使用${},因为#{}无法在单引号中使用,要么使用concat(进行拼接+#{},或者使用双引号的方式括住%,常用第三种
<!-- List<User> selectUserByLikeName( @Param("username" String username;-->
<select id="selectUserByLikeName" resultType="User">
<!-- select * from user where username like '%${username}%' -->
<!-- select * from user where username like concat('%',#{username},'%' -->
select * from user where username like "%"#{username}"%"
</select>