MyBatis两表联查示范
上两章入门我们讲到了基本写法:单表查询跟read还有inputsteam两种流的区别,现在是MyBatis一对一两表连查的示范,首先我们先来看一下MyBatis常用标签一共有哪一些
常用标签
- < select >
- < insert >
- < update >
- < MyBatis>
- < sql>
- < result >
因为这里我们是两表联查的示范所以这些标签就不作解释了,给自己留个印象就可以了,后面有空记得要写
素材了解
两表联查的两张表
用户表:user
角色表:role
用户表中的role_id跟角色表中的id是两个关联的,所有我们要查询的话就要根据id来作为关联字段:
这里我们只需要role表中的name字段所有我们前面select的关键词是r.name
SELECT u.*,r.name FROM
user
u, role r WHERE u.role_id=r.id
idea中类的编写
这里我们先准备每个表的单独查询可以完成,所以我们要先完成两个实体类,两个mapper.xml,两个Dao层的接口,Main函数运行等相关操作,以下按顺序写就可以了
user表实体类:
这里我没写set get方法,请自行补上
// An highlighted block
public class GoodsUserEntity {
private Integer id;
private String username;
private String password;
private Integer roleId;
//这个实体类是用来多表查询结果集中关联角色表role的实体类
private RoleEntity role;
@Override
public String toString() {
return "GoodsUserEntity{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", roleId=" + roleId +
", role=" + role +
'}';
}
}
role表实体类:
自行补上set/get方法
public class RoleEntity {
private Integer id;
private String name;
@Override
public String toString() {
return "RoleEntity{" +
"id=" + id +
", name='" + name + '\'' +
'}';
<