数据层设计与开发(数据层标准实现类) | 学习笔记

简介: 简介:快速学习数据层设计与开发(数据层标准实现类)

开发者学堂课程【DAO 开发实战业务分析:数据层设计与开发(数据层标准实现类)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/399/detail/5164


数据层设计与开发(数据层标准实现类)

 

内容介绍:

一、数据层实现类

二、总结


一、数据层实现类

首先对于数据层而言,它的子类一定要进行数据库的操作,那么一旦要进行数据库操作,必然要使用到 Connection ,但是现在的问题是: Connection 对象取得被DatabaseConnection 类控制着。

由于一个业务层需要进行多个数据层的调用,所以绝对不可能将数据库的打开与关闭处理交给数据层完成,而所有数据库的控制只能够交由业务层处理,因为数据层只需要 Connection 接口就够了。

现在数据层的实现子类名称为MemberDAOImpl,并且将其保存在cn.mldn.oracle.dao.impl 子包之中

public class MemberDAOImpl implements IMemberDAO {

private Connection conn ;

private PreparedStatement pstmt ;//所有的数据库的操作都通过此接口完成

public MemberDAOImpl(Connection conn) {

this.conn = conn ;

}

image.png

public boolean doCreate(Member vo) throws Exception {

String sql = "INSERT INTO member(mid,name ,age,phone,birthday,note)

this.pstmt = this.conn.prepareStatement(sql) ;

this.pstmt.setString(1,vo.getMid());

this.pstmt.setString(2, vo.getName());

this.pstmt.setInt( 3,vo.getAge());

this.pstmt.setString(4,vo.getPhone());this.pstmt.setDate(5,newjava.sql.Date(vo.getBirthday().getTime())

this.pstmt.setString(6, vo.getNote());

return this.pstmt.executeUpdate() > 0 ;

}

public boolean doUpdate(Member vo) throws Exception {

String sql = "UPDATE member SET name=?, age=? , phone=?, birthday=? , note=? WHERE"

this.pstmt = this.conn.prepareStatement(sql) ;

this.pstmt.setString(1, vo.getName());this.pstmt.setInt(2,vo.getAge());

this.pstmt.setString( 3,vo.getPhone());l

this.pstmt.setDate(4,new java.sql.Date(vo.getBirthday().getTime())

this.pstmt.setString(5,vo.getNote()); I

this.pstmt.setString(6,vo.getMid());

return this.pstmt.executeUpdate() >0 ;

}

public Member findById(String id) throws Exception {

Member vo = null ;

String sql = "SELECT mid, name, age, phone,birthday , note FROM member

this.pstmt = this.conn.prepareStatement(sql) ;

this.pstmt.setString(1,id);

ResultSet rs = this.pstmt.executeQuery() ;

if (rs.next()){//如果有数据返回则进行对象实例化

vo = new Member() ;

vo.setMid(rs.getString(1));

vo.setName(rs.getString(2));

vo.setAge(rs.getInt(3));

vo.setPhone(rs.getString(4));

vo.setBirthday (rs.getDate(5));

vo.setNote(note);


二、总结

实际上如果按照以上的方式编写代码虽然可以实现功能,但是代码的操作的重复性太高。

可以适当的利用反射并且结合 JDBC 的查询返回动态实现内容的设置。

相关文章
|
2月前
|
架构师 测试技术 Linux
嵌入式软件架构中抽象层设计方法
嵌入式软件架构中抽象层设计方法
147 0
|
2月前
|
消息中间件 前端开发 测试技术
DDD - 分层架构:有效降低层与层之间的依赖
DDD - 分层架构:有效降低层与层之间的依赖
131 0
|
9月前
|
监控
OPC分层模型结构与对象接口编程
OPC分层模型结构与对象接口编程
|
设计模式 Linux C++
C++ 接口和实现分离初步简介
C++ 接口和实现分离初步简介
139 0
|
开发者
数据层设计与开发(数据层工厂类) | 学习笔记
简介:快速学习数据层设计与开发(数据层工厂类)
84 0
数据层设计与开发(数据层工厂类) | 学习笔记
|
数据库 开发者
数据层设计与开发(定义数据层标准) | 学习笔记
简介:快速学习数据层设计与开发(定义数据层标准)
169 0
数据层设计与开发(定义数据层标准) | 学习笔记
|
开发者
业务层设计与开发(定义业务层标准) | 学习笔记
简介:快速学习业务层设计与开发(定义业务层标准)
116 0
业务层设计与开发(定义业务层标准) | 学习笔记
|
设计模式 Java 数据库
数据层结构优化 | 学习笔记
简介:快速学习数据层结构优化
80 0
数据层结构优化 | 学习笔记
|
JavaScript vr&ar 开发者
综合案例(controller层编写) | 学习笔记
快速学习综合案例(controller层编写)。
120 0
|
数据库 开发者
业务层设计与开发(业务层标准实现类) | 学习笔记
简介:快速学习业务层设计与开发(业务层标准实现类)
109 0