1.引入
通过后面几节课程,咱们理解了应用MyBatis实现根本的增删查改的操作,而后咱们又说了一下载增删查改中的参数传递问题。咱们之前的操作次要是针对一个对象进行的操作。那么当咱们的返回值是一个汇合的时候该如何进行解决呢?那么当初咱们较为具体的理解一下查问操作。
2.实现返回值是一个对象汇合(List)的操作
(1).在接口中定义编写查问的办法
public List<Employee> getEmpsByLastNameLike(String lastName);
(2).在该实体对象的对应的映射文件中进行查问的配置
<select id="getEmpsByLastNameLike" resultType="com.atguigu.mybatis.bean.Employee"> select * from tbl_employee where last_name like #{lastName}</select>
//resultType:如果返回的是一个汇合,要写汇合中元素的类型
(3).测试查问
EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);List<Employee> like = mapper.getEmpsByLastNameLike("%e%");for (Employee employee : like) { System.out.println(employee);}
总结:应用select查问出一个对象汇合而后返回须要留神:
1.咱们在实体对象的映射文件中设置配置的时候,如果返回的是一个汇合,要写汇合中元素的类型。
2.在查问的时候,咱们间接应用一个汇合对象List来接管查问的后果即可,MyBatis会帮忙咱们加载到汇合中。
3.实现返回值是一个对象汇合(Map<key,value>)的操作
(1).单条记录封装成为一个Map对象
①.在接口中定义编写查问的办法
public Map<String, Object> getEmpByIdReturnMap(Integer id);
②.在该实体对象的对应的映射文件中进行查问的配置
<select id="getEmpByIdReturnMap" resultType="map"> select * from tbl_employee where id=#{id} </select>
//留神这一个时候的resultType
③.测试查问
EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);Map<String, Object> map = mapper.getEmpByIdReturnMap(1);System.out.println(map);
总结:
1.留神在实体对象的对应的映射文件中进行查问的配置的时候resultType的类型。
(2).单条记录封装成为一个Map对象
①.在接口中定义编写查问的办法
@MapKey("lastName")public Map<String, Employee> getEmpByLastNameLikeReturnMap(String lastName);
//留神:@MapKey:通知mybatis封装这个map的时候应用哪个属性作为map的key
②.在该实体对象的对应的映射文件中进行查问的配置
<select id="getEmpByLastNameLikeReturnMap" resultType="com.atguigu.mybatis.bean.Employee"> select * from tbl_employee where last_name like #{lastName}</select>
//留神:这里的resultType是实体对象
③.测试查问
EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);Map<String, Employee> map = mapper.getEmpByLastNameLikeReturnMap("%r%");System.out.println(map);
总结:
1.咱们在实体对象的映射文件中设置配置的时候,如果返回的是一个汇合,要写汇合中元素的类型。
2.咱们在接管的时候须要在办法下面申明Map的key类型,应用的是@MapKey(" + key的名称+ ")。