对于传统关系型数据库来说,Spring Boot使用JPA(Java Persistence API)资源库提供持久化的标准规范,即将Java的普通对象通过对象关系映射(ORM)持久化到数据库中。
一、使用MySQL是maven中的依赖配置
mysql
mysql-connector-java
runtime
org.springframework.boot
spring-boot-starter-data-jpa
二、建立数据实体
1、假设有部门、用户、角色三个实体,且关系为一个用户只能隶属于一个部门,一个用户可以拥有多个角色
2、Java类
User.java
1 package com.slp.entity;2
3 import com.fasterxml.jackson.annotation.JsonBackReference;4 import org.springframework.format.annotation.DateTimeFormat;5
6 import javax.persistence.*;7 import java.util.Date;8 import java.util.List;9
10
11 /**12 * Created by sangliping on 2017/8/18.13 * @ManyToOne定义User与Department的多对一关系,并用中间表user_role来存储他们的ID14 * @DateTimeFormat日期进行格式化15 * @JsonBackReference用了方式关系对象的递归访问16 */17
18 @Entity19 @Table(name = "user")20 public class User implements java.io.Serializable{21 @Id22 @GeneratedValue(strategy = GenerationType.IDENTITY)23 private Long id;24 private String name;25 @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")26 private Date createdate;27
28 @ManyToOne29 @JoinColumn(name = "did")30 @JsonBackReference31 private Department deparment;32
33 @ManyToMany(cascade = {}, fetch = FetchType.EAGER)34 @JoinTable(name = "user_role",35 joinColumns = {@JoinColumn(name = "user_id")},36 inverseJoinColumns = {@JoinColumn(name = "roles_id")})37 private Listroles;38
39 public User() {40 }41
42 public Long getId() {43 return id;44 }45
46 public void setId(Long id) {47 this.id = id;48 }49
50 public String getName() {51 return name;52 }53
54 public void setName(String name) {55 this.name = name;56 }57
58 public Date getCreatedate() {59 return createdate;60 }61
62 public void setCreatedate(Date createdate) {63 this.createdate = createdate;64 }65
66 public Department getDeparment() {67 return deparment;68 }69
70 public void setDeparment(Department deparment) {71 this.deparment = deparment;72 }73
74 public ListgetRoles() {75 return roles;76 }77
78 public void setRoles(Listroles) {79 this.roles = roles;80 }81 }
Role.java
1 package com.slp.entity;2
3 import javax.persistence.*;4 import java.io.Serializable;5
6 /**7 * Created by sangliping on 2017/8/18.8 */9 import javax.persistence.*;10
11 @Entity12 @Table(name = "role")13 public class Role implements java.io.Serializable{14 @Id15 @GeneratedValue(strategy = GenerationType.IDENTITY)16 private Long id;17 private String name;18
19 public Role() {20 }21
22 public Long getId() {23 return id;24 }25
26 public void setId(Long id) {27 this.id = id;28 }29
30 public String getName() {31 return name;32 }33
34 publ