mybatis 多表查询怎么将用到的字段封装成vo
时间: 2024-05-11 19:16:03 浏览: 172
MyBatis-Plus 如何实现连表查询的示例代码
要将多表查询中用到的字段封装成VO,可以按照以下步骤进行:
1. 定义VO类,命名为xxxVO(xxx代表业务模块名),在类中定义与查询结果对应的属性,属性名可以与表的列名相同,也可以自定义。
2. 在MyBatis的Mapper XML文件中,使用<resultMap>标签定义结果集映射规则,将查询结果集中的列与VO类中的属性进行映射。例如:
```
<resultMap id="xxxResultMap" type="com.xxx.xxxVO">
<result column="id" property="id"/>
<result column="name" property="name"/>
<result column="age" property="age"/>
<result column="dept_name" property="deptName"/>
<result column="job_title" property="jobTitle"/>
</resultMap>
```
其中,column属性表示查询结果集中的列名,property属性表示VO类中对应的属性名。
3. 在Mapper XML文件中编写多表查询的SQL语句,并在<resultMap>标签中引用定义的结果集映射规则。例如:
```
<select id="queryXXX" resultMap="xxxResultMap">
SELECT t1.id, t1.name, t1.age, t2.dept_name, t2.job_title
FROM table1 t1
LEFT JOIN table2 t2 ON t1.id = t2.id
</select>
```
4. 在Java代码中调用Mapper接口的方法执行多表查询,并将查询结果封装为VO对象。
```
@Autowired
private XxxMapper xxxMapper;
public XxxVO queryXXX() {
return xxxMapper.queryXXX();
}
```
其中,XxxMapper是Mapper接口,queryXXX是定义在接口中的方法。执行该方法后,MyBatis会自动将查询结果封装为XxxVO对象并返回。
阅读全文