使用Navicat创建MySQL表
info表(包括id和title, id为主键且自动递增); info_content表(包括id, info_id, content, id为主键且自动递增)。info表为主表,info表中的一条数据对应info_content表中的多条数据:
Springboot编写接口
编写实体类:
编写 Info 实体类(entity):
package com.example.demo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.List;
@TableName("user")
@Data
public class Info {
@TableId(type = IdType.AUTO)
private Integer id;
private String title;
//表示以下数据并不是在数据库中存在
@TableField(exist = false)
private List<InfoContent> contentList;
}
编写 InfoContent 实体类(entity):
package com.example.demo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@TableName("info_content")
@Data
public class InfoContent {
@TableId(type = IdType.AUTO)
private Integer id;
private Integer info_id;
private String content;
}
Info 中的 contentList 就包含一个或多个 InfoContent 实体。
编写xml文件:
Info.xml 用于定义 SQL查询语句 及 返回结果:
<!DOCTYPE mapper PUBLIC "-//mybatis.org// DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.InfoMapper">
<resultMap id="infoMap" type="com.example.demo.entity.Info">
<result property="id" column="id"/>
<result property="title" column