2022-08-24 学习笔记 day47-DAO封装与实体封装

DAO封装与实体封装

DAO封装

DAO (Data Access Object) ——数据库访问对象

  1. 作用
    数据库访问对象在开发时提供针对某张表的操作细节 【增删改查】
  2. 优点
    在管理系统开发时,通过数据库访问对象可以避免反复的SQL命令书写
    在管理系统开发时,通过数据库访问对象可以避免反复的JDBC开发步骤书写
  3. DAO类
    提供数据库访问对象的类
  4. DAO类开发规则
    1.一个DAO类封装的是一张表操作细节,即表CRUD操作
    2.DAO类的命名规则:表名+Dao
    3.DAO类所在包的命名规则:公司网站域名倒序.dao

实体封装

  1. 一个实体类用于描述一张表结构
  2. 实体类名应该与关联的表名保持一致【可忽略大小写】
  3. 实体类的属性应该与关联的表文件字段保持一致 【不要使用基本数据类型】
  4. 实体类的一个实例对象用于在内存中存储对应的表文件的一个数据行

实体类与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 +
                '}';
    }
}

在开发中使用DAO封装与实体封装

利用反射+实体类实现Dao封装 (简易Mybaits)

代码:GitHubGitee

使用DBUtils+实体类实现Dao封装

代码:GitHubGitee

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值