Map查询

1、项目结构

2、EmployeeMapper.xml添加代码

<!-- public Map<String, Object> getEmpByIdReturnMap(Integer id) ; -->
      <select id="getEmpByIdReturnMap" resultType="map">
          select * from tbl_employee where id = #{id}
      </select>
      
<!-- public Map<Integer, Employee> getEmpByLastNameLikeReturnMap(String lastName) ; -->
      <select id="getEmpByLastNameLikeReturnMap" resultType="com.atguigu.mybatis.bean.Employee">
          select * from tbl_employee where last_name like #{lastName}
      </select>

注:①单个记录查询时:resultType="map"

  ②多个记录查询时:resultType="com.atguigu.mybatis.bean.Employee",为Map中value类型

3、EmployeeMapper.java添加代码

  //多条记录封装一个map:Map<Integer, Employee>:键是这条记录的主键,只是记录封装后的javabean
    @MapKey("id")   //确定id值为Map中key
    public Map<Integer, Employee> getEmpByLastNameLikeReturnMap(String lastName) ;
    
    /*返回一条记录的map:
            key:列名
            value:对应值*/
    public Map<String, Object> getEmpByIdReturnMap(Integer id) ;
    

注:@MapKey("id")  确定id值为Map中key

4、单元测试类代码

  @Test
    public void test05() throws IOException {
        SqlSessionFactory sqlSessionFactory =getSqlSessionFactory();
        //1、获取到的SqlSession不会自动提交
        SqlSession openSession= sqlSessionFactory.openSession();
        try {
            /*2.获取接口的实现对象*/
            EmployeeMapper mapper= openSession.getMapper(EmployeeMapper.class);
            //mapper为代理对象,执行增删改查
            
       //单个查询 //Map<String , Object> map=mapper.getEmpByIdReturnMap(1);
//模糊查询所有 Map<Integer, Employee> map =mapper.getEmpByLastNameLikeReturnMap("%e%"); System.out.println(map); //3、手动提交 openSession.commit(); } finally { openSession.close(); } }
原文地址:https://www.cnblogs.com/2016024291-/p/8235078.html