Spring boot jpa (一) entity

举报
Nick Qiu 发表于 2020/10/25 21:37:33 2020/10/25
【摘要】 前言本文介绍如何使用spring boot jpa entity。开发环境如下:项目说明jdk1.8idea2017-03(已经安装lombok插件)mysql 5.6推荐使用dockernavicatmysql 客户端操作步骤新建spring boot项目使用navicat新建数据库db_example修改配置文件./src/main/resources/application.prope...

前言

本文介绍如何使用spring boot jpa entity。

开发环境如下:

项目 说明
jdk 1.8
idea 2017-03(已经安装lombok插件)
mysql 5.6 推荐使用docker
navicat mysql 客户端

操作步骤

  • 新建spring boot项目

  • 使用navicat新建数据库db_example

  • 修改配置文件./src/main/resources/application.properties

spring.jpa.hibernate.ddl-auto=create
spring.datasource.url=jdbc:mysql://localhost:3306/db_examplespring.datasource.username=root
spring.datasource.password=123456
  • 添加实体类book

package org.nick.bootstart.model;/*
 * @Author      : Nick
 * @Description :
 * @Date        : Create in 12:18 2018/4/30
 **/import lombok.AllArgsConstructor;import lombok.Data;import lombok.Generated;import lombok.NoArgsConstructor;import javax.persistence.*;import java.util.HashSet;import java.util.Objects;import java.util.Set;@Data@NoArgsConstructor@AllArgsConstructor@Entitypublic class Book {    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)    private long id;    private String title;    private String isbn;    public String publisher;    @ManyToMany
    @JoinTable(name = "author_book", joinColumns = @JoinColumn(name = "book_id"), inverseJoinColumns = @JoinColumn(name = "author_id"))    public Set<Author> authors = new HashSet<>();    @Override
    public boolean equals(Object o) {        if (this == o) return true;        if (o == null || getClass() != o.getClass()) return false;
        Book book = (Book) o;        return id == book.id &&
                Objects.equals(title, book.title) &&
                Objects.equals(isbn, book.isbn) &&
                Objects.equals(publisher, book.publisher);
    }    @Override
    public int hashCode() {        return Objects.hash(id);
    }    @Override
    public String toString() {        return "Book{" +                "id=" + id +                ", title='" + title + '\'' +                ", isbn='" + isbn + '\'' +                ", publisher='" + publisher + '\'' +                '}';
    }
}
  • 添加Author

package org.nick.bootstart.model;/*
 * @Author      : Nick
 * @Description :
 * @Date        : Create in 12:36 2018/4/30
 **/import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import javax.persistence.*;import java.util.HashSet;import java.util.Set;@Data@NoArgsConstructor@AllArgsConstructor@Entitypublic class Author {    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)    private long id;    private String firstName;    private String lastName;    @ManyToMany(mappedBy = "authors")    private Set<Book> books = new HashSet<>();


}
  • 执行程序

  • 打开navicat 查看数据库,发现已经初始化了相关表;


    image.png

总结

这里spring.jpa.hibernate.ddl-auto可以是none,update,create,create-drop。具体含义如下:

  • none 不改变表结构

  • update 通过entity结构改变数据库结构

  • create 每次都打开的时候新建数据库,关闭的时候删除数据库

  • create-drop 创建数据库,然后在SessionFactory关闭的时候删除数据库;


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。