多对一查询例子
项目目录结构(maven):
多对一查询灵魂之处解析:
补充说明:上述图片描述中存在两个问题:
1.id相同起别名的那个,如果查询了两个id,那它就有可能查询错误,这时候需要起别名来区分.但是如果只查询一个,虽然另外一个也可能是错的,但是没查,不会报错,也不用起别名.
2.association中的column="dept_id"这个,额外SQL查询必须写,因为要作为参数.关联查询不用写,没啥用,sql语句里面都有.(无论是多对一还是一对多同理)
创建表t_dept:(一方)
CREATE TABLE t_dept (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(20) DEFAULT NULL,
PRIMARY KEY (id)
);
INSERT INTO t_dept VALUES ('1', '学术部');
INSERT INTO t_dept VALUES ('2', '销售部');
创建表t_user:(多方,本来应该是员工对应部门,但是部门的表之前用过了,这里用user代替)
CREATE TABLE t_user (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(20) DEFAULT NULL,
dept_id int(11) NOT NULL,
PRIMARY KEY (id),
KEY dept_id (dept_id),
FOREIGN KEY (dept_id) REFERENCES t_dept (id)
) ;
INSERT INTO t_user VALUES ('1', '熊落落', '1');
INSERT INTO t_user VALUES ('2', '李鹏鹏', '2');
INSERT INTO t_user VALUES ('3', '崔美娟', '1');
创建实体类User:
package com.xiongluoluo.bean;
import lombok.*;
/**
* Created by Administrator on 2019/12/19 0019.
*/
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class User {
private int id;
private String name;
private Department department;
}
创建实体类Department:
package <