【Mybatis3】—— 使用collection处理一对多映射

本文介绍了如何在Mybatis3中处理一对多映射,通过创建数据库表、POJO对象、接口和XML文件,展示了Controller测试及结果。同时,文章详细讨论了在一对多映射中遇到的两个问题:相同字段导致的数据覆盖和查询结果数量限制,并提供了解决方案,即为相同字段设置别名以避免冲突。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 创建数据库表

tb_classroom 帖子表

-- Table: public.tb_classroom

-- DROP TABLE public.tb_classroom;

CREATE TABLE public.tb_classroom
(
    id integer NOT NULL DEFAULT nextval('tb_classroom_id_seq'::regclass),
    classroom_no character varying(20) COLLATE pg_catalog."default" NOT NULL,
    name character varying(20) COLLATE pg_catalog."default" NOT NULL,
    CONSTRAINT tb_classroom_pkey PRIMARY KEY (id)
)
WITH (
    OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.tb_classroom
    OWNER to postgres;
COMMENT ON TABLE public.tb_classroom
    IS '班级信息表';

-- Index: unique_index_on_classroom_no

-- DROP INDEX public.unique_index_on_classroom_no;

CREATE UNIQUE INDEX unique_index_on_classroom_no
    ON public.tb_classroom USING btree
    (classroom_no COLLATE pg_catalog."default")
    TABLESPACE pg_default;

插入数据:

INSERT INTO "public"."tb_classroom" VALUES ('1', 'C003001', '三年一班');
INSERT INTO "public"."tb_classroom" VALUES ('3', 'C003002', '三年二班');

tb_student 用户表

-- Table: public.tb_student

-- DROP TABLE public.tb_student;

CREATE TABLE public.tb_student
(
    id integer NOT NULL DEFAULT nextval('tb_student_id_seq'::regclass),
    student_no character varying(20) COLLATE pg_catalog."default" NOT NULL,
    name character varying(20) COLLATE pg_catalog."default" NOT NULL,
    age smallint NOT NULL,
    score real NOT NULL,
    classroom_no character varying(20) COLLATE pg_catalog."default" NOT NULL,
    CONSTRAINT tb_student_pkey PRIMARY KEY (id)
)
WITH (
    OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.tb_student
    OWNER to postgres;
COMMENT ON TABLE public.tb_student
    IS '学生信息表';

-- Index: unique_index_on_student_no

-- DROP INDEX public.unique_index_on_student_no;

CREATE UNIQUE INDEX unique_index_on_student_no
    ON public.tb_student USING btree
    (student_no COLLATE pg_catalog."default")
    TABLESPACE pg_default;

插入数据:

INSERT INTO "public"."tb_student" VALUES ('1', 'S315060012', '小明', '25', '88.5', 'C003001');
INSERT INTO "public"."tb_student" VALUES ('2', 'S315060039', '小黄', '24', '92.5', 'C003001');
INSERT INTO "public"."tb_student" VALUES ('3', 'S315060011', 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值