乐趣区

关于前端:MyBatisMyBatis之查询返回对象集合

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 的名称 + “)。

退出移动版