如何使用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.隔离了数据访问代码和业务逻辑代码
分类:
java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理