如何使用DAO层模式开发

一、什么是DAO模式

DAO就是在数据库与业务逻辑之间,在里面将对数据库操作的代码封装起来.

简单来说,比如数据库有一张表,需要通过代码来实现对这张表的操作.这时候,就在代码那里遍历一个对应这个表的实体类;接着写一个接口;最后写一个实现类来继承这个接口,实现类里面包含数据库语句和操作代码.

二、如何使用

来个例子:比如有一张学生表,要对它做增删改操作,使用DAO模式编写代码

 

 

 

 1.编写实现类

定义属性,及构造方法和get,set方法

复制代码
public class Student {
    private Integer id;
    private String name;
    private Integer age;
    private String className;
    public Student() {
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public String getClassName() {
        return className;
    }
    public void setClassName(String className) {
        this.className = className;
    }    
}
    
复制代码

2.编写接口

public interface StudentDao {
    public void insert(Student stu);//插入
    public void deleteById(Integer id);//删除
    public List<Student> findAll();//查询全部学生
}

3.实现类

实现这个接口,就得重写里面的所有方法,下面进行插入操作

复制代码
public class StudentDaoImpl implements StudentDao {
    @Override
    public void insert(Student stu) {
        Connection con = null;
        PreparedStatement pstmt = null;
        try {
        //这里封装一个JDBCUtil工具类 con
= JDBCUtil.getConnection(); String sql = "insert into user value(?,?,?)"; pstmt = con.prepareStatement(sql); pstmt.setString(1, stu.getName()); pstmt.setInt(2,stu.getAge()); pstmt.setString(3, stu.getClassName()); pstmt.executeUpdate(); } catch(Exception e) { throw new RuntimeException(e); } finally { try { if(pstmt != null) pstmt.close(); if(con != null) con.close(); } catch(SQLException e) {} } } @Override public void deleteById(Integer id) { } @Override public List<Student> findAll() { return null; } }
复制代码

在DAO层中,一张表格对应一个实体类,一个实体类对应一个接口,一个接口对应一个实现类.

三、使用DAO模式开发的好处

 1.逻辑清晰,表与实体类之间一一对应,便于后期维护.

 2.降低耦合性,将数据库代码封装起来,提供一个接口.

 3.隔离了数据访问代码和业务逻辑代码

posted @   Tmillion  阅读(164)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示