DAO封装与实体封装
DAO封装
DAO (Data Access Object) ——数据库访问对象
- 作用
数据库访问对象在开发时提供针对某张表的操作细节 【增删改查】 - 优点
在管理系统开发时,通过数据库访问对象可以避免反复的SQL命令书写
在管理系统开发时,通过数据库访问对象可以避免反复的JDBC开发步骤书写 - DAO类
提供数据库访问对象的类 - DAO类开发规则
1.一个DAO类封装的是一张表操作细节,即表CRUD操作
2.DAO类的命名规则:表名+Dao
3.DAO类所在包的命名规则:公司网站域名倒序.dao
实体封装
- 一个实体类用于描述一张表结构
- 实体类名应该与关联的表名保持一致【可忽略大小写】
- 实体类的属性应该与关联的表文件字段保持一致 【不要使用基本数据类型】
- 实体类的一个实例对象用于在内存中存储对应的表文件的一个数据行
实体类与JavaBean的区别 (存疑)
具体案例
现有emp表
mysql> desc emp;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| EMPNO | int(4) | NO | PRI | NULL | |
| ENAME | varchar(10) | YES | | NULL | |
| JOB | varchar(9) | YES | | NULL | |
| MGR | int(4) | YES | | NULL | |
| HIREDATE | date | YES | | NULL | |
| SAL | double(7,2) | YES | | NULL | |
| COMM | double(7,2) | YES | | NULL | |
| DEPTNO | int(2) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
8 rows in set (0.05 sec)
封装后
import java.io.Serializable;
import java.sql.Date;
public class Emp {
private Integer empno;
private String ename;
private String job;
private Integer mgr;
private Date hiredate;
private Double sal;
private Double comm;
private Integer deptno;
public Emp() {}
public Emp(Integer empno, String ename, String job, Integer mgr, Date hiredate, Double sal, Double comm, Integer deptno) {
this.empno = empno;
this.ename = ename;
this.job = job;
this.mgr = mgr;
this.hiredate = hiredate;
this.sal = sal;
this.comm = comm;
this.deptno = deptno;
}
public Integer getEmpno() {
return empno;
}
public void setEmpno(Integer empno) {
this.empno = empno;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public Integer getMgr() {
return mgr;
}
public void setMgr(Integer mgr) {
this.mgr = mgr;
}
public Date getHiredate() {
return hiredate;
}
public void setHiredate(Date hiredate) {
this.hiredate = hiredate;
}
public Double getSal() {
return sal;
}
public void setSal(Double sal) {
this.sal = sal;
}
public Double getComm() {
return comm;
}
public void setComm(Double comm) {
this.comm = comm;
}
public Integer getDeptno() {
return deptno;
}
public void setDeptno(Integer deptno) {
this.deptno = deptno;
}
@Override
public String toString() {
return "Emp{" +
"empno=" + empno +
", ename='" + ename + '\'' +
", job='" + job + '\'' +
", mgr=" + mgr +
", hiredate=" + hiredate +
", sal=" + sal +
", comm=" + comm +
", deptno=" + deptno +
'}';
}
}