Mybatis查询

查询

查询的数据为单条实体类

使用实体类进行接受即可,或者使用list,map接口均可.后面两者比较浪费

  1. 使用实体类接受

mapper接口:

User selectUserById(int userid);

映射文件:使用实体类

<!--第二个一致,对应方法名    User selectUserById(int userid); -->
  <select id="selectUserById" resultType="user">
        select * from user where userid=#{userid}
  </select>
  1. 使用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("")注解

  1. 使用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);
        }
  1. 使用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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值