SSM框架实现多表查询

功能:要实现在查找user时同时对于account表中的信息进行查询

account表

user表

SSM框架实现多表查询_第1张图片

两张表的user_id字段相同

1.在实体类中加上要联合查询的数据类型

public class User2 {
	private Account account2;

	private Integer userId;

	private String account;

	private Integer identityId;
 
    ...
}

在user2表中加入了Account account2

2.修改XML文件实现sql查询

根据generator创建sql语句的xml

原来的xml

SSM框架实现多表查询_第2张图片

SSM框架实现多表查询_第3张图片

首先要写新的resultMap,名称为WithAccountResultMap,意为联合account表进行查询,user参数部分复制原先的BaseResultMap的内容,后面在association中添加联合查询的account中的内容属性

SSM框架实现多表查询_第4张图片

association字段 

  • property:user类中所定义的数据类型 Account account2

  • javaType:account实体类地址

id字段

  • id:数据库中account表中的主键名称

  • property:实体类中所对应的名称

result字段是对于查询出来的数据对应赋值,如果不写,则从数据库查询出来的数据则不会进行显示

3.编写sql

 
  	u.user_id, u.account, u.identity_id, u.salt, u.password, u.user_name, u.email, u.sign_salt, u.sign_password, 
    u.auth_status, u.user_status, u.platform_id, u.update_time, u.create_time, u.head_pic, u.cash_password, 
    u.cash_salt,a.account_id,a.account_type,a.is_admin,a.company_id,a.account_status,a.last_login_time,a.is_delete
  

首先定义查询集合,将要查的属性名称都写上,如果不同表有相同的列名,则用别名调用进行区分

 

你可能感兴趣的:(SSM框架实现多表查询)