Entity实体设计
💡用来和数据库中的表对应,解决的是数据格式在Java和数据库间的转换。
(一)设计思想
数据库 | Java | |
---|---|---|
表 | 类 | |
行 | 对象 | |
字段(列) | 属性 |
(二)实体Entity编程
编码规范
💡Java中将所有数据库的数据,使用Java对象进行表示。
-
① 通常一张表对应一个实体,命名规范:表名
t_person
,实体类名Person
-
② 实体类必须实现
Serializable
-
③ 表中的一个字段,对应实体的一个属性。实体属性必须使用包装类型。封装并提供set和get方法。
-
④ 必须手动提供无参构造方法(必须),如果需要也可以提供有参构造方法(非必要)
-
⑤ 代码要放在
entity
包下
示例1:
-
MySQL库表
create table t_person(
person_id int primary key auto_increment,
person_name varchar(20) not null,
age tinyint,
sex varchar(6),
mobile varchar(20),
address varchar(50)
);
-
实体类
package com.xx.entity;
//1. 实体类,实现序列化
public class Person implements Serializable{
// 2. 属性
private Integer personId;
private String personName;
private Integer age;
private String sex;
private String mobile;
private String address;
// 3. 无参构造方法+有参构造方法(可选)
public Person(){}
// 4. get和set方法
public Integer getPersonId(){return personId;}
public void setPersonId(Integer personId){this.personId = personId;}
public String getPersonName(){return personName;}
public void setPersonName(String personName){this.personName = personName;}
public Integer getAge(){return age;}
public void setAge(Integer age){this.age = age;}
public String getSex(){return sex;}
public void setSex(String sex){this.sex = sex;}
public String getMobile(){return mobile;}
public void setMobile(String mobile){this.mobile = mobile;}
public String getAddress(){return address;}
public void setAddress(String address){this.address = address;}
}
补充:
事实上JdbcTemplate的RowMapper的结果集映射对象,就是ORM思想的应用。
示例2:
-
MySQL库表
create table t_account( account_id int primary key auto_increment, account_name varchar(20) not null unique, account_password varchar(20) not null, balance decimal(10,1) )
-
实体类