Mybatis - 查询功能


一、单表查询基础功能

1. 根据id查询数据详情

  • 持久层接口方法
    User getUserById(int id);
  • xml 文件对应SQL
    <select id="getUserById" resultType="com.cy.mybatis.pojo.entity.User">
       select * from user
       where id = #{id}
    </select>
    
  • 测试
    @Test
    void testGetUserById(){
        User user = userMapper.getUserById(1);
        System.out.println("user = " + user);
    }
    

2. 查询当前表中数据列表

  • 持久层接口方法
    List<User> getAllUser();
  • xml 文件对应SQL
    <select id="getAllUser" resultType="com.cy.mybatis.pojo.entity.User">
       select * from user
    </select>
    
  • 测试
    @Test
    void testGetAllUser(){
        List<User> allUser = userMapper.getAllUser();
        System.out.println("allUser = " + allUser);
    }
    

3. 统计当前表中的数据数量

  • 持久层接口方法
    int count();
  • xml 文件对应SQL
    <select id="count" resultType="int">
       select count(*) from user
    </select>
    
  • 测试
    @Test
    void testCount() {
        int count = userMapper.count();
        System.out.println("count = " + count);
    }
    

二、查询进阶功能

1. 根据id查询数据详情并封装到Map中

  • 持久层接口方法
    Map<String,Object> getUserByIdToMap(int id);
  • xml 文件对应SQL
    <select id="getUserByIdToMap" resultType="java.util.Map">
        select * from user
        where id = #{id}
    </select>
    
  • 测试
    @Test
    void testGetUserByIdToMap(){
        Map<String, Object> map = userMapper.getUserByIdToMap(1);
        System.out.println(map);
    }
    
  • 输出结果
    在这里插入图片描述

2. 查询数据列表信息并封装到Map键值对的值value中

  • 持久层接口方法
    @MapKey("id") // 将查询出来的结果中的id作为Map容器中的key(因为id唯一),查询出来的结果作为value
    Map<String,Object> getAllUserToMap();
    
  • xml 文件对应SQL
    <select id="getAllUserToMap" resultType="map">
        select * from user
    </select>
    
  • 测试
    @Test
    void testGetAllUserToMap(){
        List<Map<String, Object>> allUserToMap = userMapper.getAllUserToMap();
        System.out.println(allUserToMap);
    }
    
  • 输出结果
    在这里插入图片描述
    {
    	 1={password=123456, phone=13334347878, sex=, id=1, age=18, email=123@163.com, username=admin},
    	 2={password=123456, phone=15050509797, sex=, id=2, age=20, email=123@163.com, username=user}, 
    	 3={password=123456, phone=13889899898, sex=, id=3, age=22, email=123@163.com, username=张三}, 
    	 4={password=123456, phone=13757576363, sex=, id=4, age=18, email=123@163.com, username=张小花}
    }
    

3. 查询当前表中数据列表并封装到Map中

  • 持久层接口方法
    List<Map<String,Object>> getAllUserToMap();
  • xml 文件对应SQL
    <select id="getAllUserToMap" resultType="map">
        select * from user
    </select>
    
  • 测试
    @Test
    void testGetAllUserToMap(){
        List<Map<String, Object>> allUserToMap = userMapper.getAllUserToMap();
        System.out.println(allUserToMap);
    }
    
  • 输出结果
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值