SpringBoot个人博客项目——相册模块开发(三)

相册和图片的关系:

相册和图片的关系,一个相册可以有多张图片,而一个图片只能属于一个相册,这样关系就出来了,相册对于图片是一对多的关系,我们怎么去描述这种关系呢。其实也很简单,只需要在多的一方去引入另一个的主键即可,我们在image表中最后一列,引入album(相册)表的主键album_id。
Image的实体类。

@Entity
public class Image {

    @Id//主键
    @GeneratedValue(strategy = GenerationType.IDENTITY)//自增
    private Long id;
    private String image;

    @ManyToOne(targetEntity = Album.class)//多对一的关系
    @JoinColumn(name = "album_id")//外键名称
    private Album album;

    protected Image(){}


    @Override
    public String toString() {
        return "Image{" +
                "id=" + id +
                ", image='" + image + '\'' +
                ", album=" + album +
                '}';
    }

    public Image(String image, Album album) {
        this.image = image;
        this.album = album;
    }

    public Album getAlbum() {
        return album;
    }

    public void setAlbum(Album album) {
        this.album = album;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }
}
@Entity
public class Album {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String title;
    private String content;
    private String cover;
    private String createTime;
    private Long imageNumber;



    @OneToMany(targetEntity = Image.class)
    @JoinColumn(name = "album_id")
    private Set<Image> images=new HashSet<>();

    protected Album(){}

    @Override
    public String toString() {
        return "Album{" +
                "id=" + id +
                ", title='" + title + '\'' +
                ", content='" + content + '\'' +
                ", cover='" + cover + '\'' +
                ", createTime='" + createTime + '\'' +
                ", imageNumber=" + imageNumber +
                ", images=" + images +
                '}';
    }

    public Album(String title, String content, String cover, String createTime, Long imageNumber, Set<Image> images) {
        this.title = title;
        this.content = content;
        this.cover = cover;
        this.createTime = createTime;
        this.imageNumber = imageNumber;
        this.images = images;
    }

    public Set<Image> getImages() {
        return images;
    }

    public void setImages(Set<Image> images) {
        this.images = images;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getCover() {
        return cover;
    }

    public void setCover(String cover) {
        this.cover = cover;
    }

    public String getCreateTime() {
        return createTime;
    }

    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }

    public Long getImageNumber() {
        return imageNumber;
    }

    public void setImageNumber(Long imageNumber) {
        this.imageNumber = imageNumber;
    }
}

通过jpa很方便的帮我们在数据库中生成相应的表和对应的关系。
在这里插入图片描述
在这里插入图片描述
上传图片
在这里插入图片描述
在这里插入图片描述
点击进去可以查看所有图片:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相册模块总结:

在这里插入图片描述

这只是整个博客项目的一个小模块功能的实现。后续将会使用SpringSecurity来实现第三方登陆的一下功能,然后部署上线。过段时间再更新。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值