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);
    }
    
  • 输出结果
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46030002/article/details/127547167