使用实体类进行接受即可,或者使用list,map接口均可.后面两者比较浪费
mapper接口:
User selectUserById(int userid);
映射文件:使用实体类
<!--第二个一致,对应方法名 User selectUserById(int userid); --> <select id="selectUserById" resultType="user"> select * from user where userid=#{userid} </select>
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("")注解
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); }
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>