查詢
查詢的資料為單條實體類
使用實體類進行接受即可,或者使用list,map介面均可.後面兩者比較浪費
- 使用實體類接受
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集合
mapper介面:
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中使用
模糊查詢
mapper介面:這裡使用username進行模糊查詢
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>