Mybatis查询

科技资讯 投稿 6500 0 评论

Mybatis查询

查询

查询的数据为单条实体类

    使用实体类接受

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(""注解

    使用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;
        }

  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中使用

模糊查询


 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>

编程笔记 » Mybatis查询

赞同 (28) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽