) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
实体类关系建立和配置映射:
在实体类中描述出两个实体的关系,由于客户是少的一方,它应该包含多个联系人,所以实体类要体现出客户中有多个联系人的信息,代码如下:.
/**
-
客户的实体类
-
1.实体类与表的映射关系
-
@Entity、@Table
-
2.类中属性与表中字段的映射关系
-
@Id
-
@GeneratedValue
-
@Column
-
所有的注解都是使用JPA的规范提供的注解,
-
所以在导入注解包的时候,一定要导入javax.persistence下的
*/
@Entity //声明实体类
@Table(name=“cst_customer”) //建立实体类和表的映射关系
public class Customer {
@Id//声明当前私有属性为主键
@GeneratedValue(strategy=GenerationType.IDENTITY) //配置主键的生成策略
@Column(name=“cust_id”) //指定和表中cust_id字段的映射关系
private Long custId;
@Column(name=“cust_name”) //指定和表中cust_name字段的映射关系
private String custName;
@Column(name=“cust_source”)//指定和表中cust_source字段的映射关系
private String custSource;
@Column(name=“cust_industry”)//指定和表中cust_industry字段的映射关系
private String custIndustry;
@Column(name=“cust_level”)//指定和表中cust_level字段的映射关系
private String custLevel;
@Column(name=“cust_address”)//指定和表中cust_address字段的映射关系
private String custAddress;
@Column(name=“cust_phone”)//指定和表中cust_phone字段的映射关系
private String custPhone;
//配置客户与联系人的映射关系(一对多关系)
/**
-
使用注解的形式配置多表关系
-
1.声明关系
-
@OneToMany:配置一对多关系
-
targetEntity:对方对象的字节码对象
-
2.配置外键(中间表)
-
@JoinColumn:配置外键
-
name:外键字段名称
-
referencedColumnName:参照的主表的主键名称
-
在客户实体类上(一的一方)添加了外键配置,所以对客户而言,也具备了维护外键的作用
*/
@OneToMany(targetEntity = LinkMan.class)
@JoinColumn(name = “lkm_cust_id”,referencedColumnName = “cust_id”)
/**
- Get、Set、toString
*/
}
由于联系人是多的一方,在实体类中要体现出,每个联系人只能对应一个客户,代码如下:
/**
-
@Author: Ly
-
@Date: 2020-12-01 08:31
-
联系人的实体类(数据模型)
*/
@Entity //声明实体类
@Table(name =“cst_linkman”) //建立实体类和表的映射关系
public class LinkMan {
@Id //声明当前私有属性为主键
@GeneratedValue(strategy = GenerationType.IDENTITY) //配置主键的生成策略
@Column(name = “lkm_id”)
private Long lkmId; //联系人编号(主键)
@Column(name = “lkm_name”)
private String lkmName;//联系人姓名
@Column(name = “lkm_gender”)
private String lkmGender;//联系人性别
@Column(name = “lkm_phone”