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(); } }