java多表查询返回数据_MyBatis 多表联合查询及优化 以及自定义返回结果集

本文介绍了如何使用 MyBatis 实现多表联合查询,并展示了 User 和 Role 的实体类、Mapper 接口及 XML 文件的示例。通过一个 1:N 的关系示例,解释了如何处理一对多的关系。同时,文章提供了相应的 Dao、Service 及测试代码,展示了一个完整的查询流程。
摘要由CSDN通过智能技术生成

下面就来说一下 mybatis 是通过什么来实现多表联合查询的。首先看一下表关系,如图:

7b09eeb3811d3f39a146f782daf12f5e.png

里,我已经搭好了开发的环境,用到的是 SpringMVC + Spring +

MyBatis,当然,为了简单期间,你可以不用搭前端的框架,只使用 Spring + MyBatis 就可以,外加 junit

测试即可。环境我就不带大家搭了,这里只说涉及到联合查询的操作。

设计好表之后,我用到了 mybatis 的自动生成工具 mybatis generator 生成的实体类、mapper 接口、以及 mapper xml 文件。由于是测试多表联合查询,因此需要自己稍加改动。

下面是 User 和 Role 的实体类代码:

package com.sica.domain;

import java.io.Serializable;

import java.util.List;

public class User implements Serializable {

private String id;

private String username;

private String password;

private List roles;

private static final long serialVersionUID = 1L;

public String getId() {

return id;

}

public void setId(String id) {

this.id = id == null ? null : id.trim();

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username == null ? null : username.trim();

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password == null ? null : password.trim();

}

public List getRoles() {

return roles;

}

public void setRoles(List roles) {

this.roles = roles;

}

@Override

public boolean equals(Object that) {

if (this == that) {

return true;

}

if (that == null) {

return false;

}

if (getClass() != that.getClass()) {

return false;

}

User other = (User) that;

return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))

&& (this.getUsername() == null ? other.getUsername() == null : this.getUsername().equals(other.getUsername()))

&& (this.getPassword() == null ? othe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值