JDBC中DAO层设计与实现

本文详细介绍了JDBC API的主要功能,包括DriverManager、Connection、Statement、ResultSet和PreparedStatement的使用。接着,讨论了JDBC操作步骤,DAO模式在数据库访问中的作用,以及DAO模式的组成部分。还阐述了分层开发的概念、特点和好处,提供了实现DAO模式的步骤,最后提到了数据库连接和事务处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JDBC(全称:Java Data Base Connectivity)是java数据库连接简称 ,提供连接各种数据库的能力。

JDBC API主要的功能

1.与数据库建立连接;

2.执行SQL语句;

3.处理结果。

JDBC关键字的使用

1.DriverManager:依据数据库的不同,管理JDBC驱动;

2.Connection:负责连接数据库并且担任传送数据库的任务;

3.Statement:由Connection产生、负责执行SQL语句;

4.ResultSet:负责保存Statement执行后所产生的查询结果;

5.PreparedStatement接口(预编译的SQL语句)提高了SQL语句的性能、代码的安全性、代码的可读性和可维护性。

 

Statement常用方法:

ResultSet executeQuery(String sql):执行SQL查询并且获取ResultSet对象

Int executeUpdate(String sql):可以执行插入、删除、更新等操作,返回值是执行该操作所影响的行数

Boolean execute(String sql):可以执行任意SQL语句,然后获得一个布尔值,表示是否返回ResultSet

Boolean next():将光标从当前位置向下移动一行

Boolean previous():游标从当前位置向上移动一行

Void close():关闭ResultSet对象

Int getInt(int colIndex):以int形式获取结果集当前行指定列号值

Int getInt(String colLabel):以int形式获取结果集当前行指定的列名值

Float getFloat(int colIndex):以float形式获取结果集当前行指定列号值

Float getFloat(String colLabel):以float形式获取结果集当前指定列名值

String getString(int colIndex):以Sting形式获取当前行指定列号值

String getString(String colLabel):以String形式获取当前行指定列名值

PreparedStatement比Statement提高了代码的可读性和可维护性,提高了SQL语句执行的性能,提高了安全性。

JDBC的操作步骤

1.加载JDBC驱动;

2.与数据库建立连接;

3.创建Statement或PreparedStatement对象;

4.发送SQL语句,并且得到返回结果;

5.处理返回结果;

6.释放资源。

遍历结果集中数据可使用列号或者列名标识列。

数据访问层 - DAO模式

持久化是将程序中的数据在瞬时状态下和持久状态间转换的机制。

持久化的主要操作:读取、查找、保存、修改、删除。

DAO(Data Access Object):数据存取对象,位于业务逻辑和持久化数据之间,能够实现对持久化数据的访问。

DAO在实体类与数据库之间起着转换器的作用,能够把实体类转换为数据库中的记录。


DAO模式是作用

1.隔离业务逻辑代码和数据访问代码;

2.隔离不同数据库的实现。


DAO模式的组成部分

1.DAO接口;

2.DAO实现类;

3.实体类;

4.数据库连接和关闭工具类。

分层开发

一种化大为小,分而治之的软件开发方法。

分层的特点:

1.每一层都有自己的职责;

2.上层不用关心下次的实现细节,上层通过下层提供的对外接口来使用其功能;

3.上一层调用下一层的功能,下一层不能调用上一层的功能。


分层开发的好处:

1.各层专注于自己功能的实现,便于提高质量;

2.便于分工协作,提高开发效率;

3.便于代码复用;

4.便于程序扩展。


分层原则:

1.封装性原则:每个层次向外公开接口,但是隐藏内部细节

2.顺序访问原则:下一层为上一层服务,但不使用上层的服务

分层结构中,不同层之间通过实体类传输数据。
 
根据分层开发DAO模式创建步骤
1:建立数据库,建表;
2:创建实体类,和相应的数据库的表是对应的;
3:创建Dao的基类接口类;
4:创建Dao的通用实现类;
5:创建具体表的Dao类;
6:创建具体表的Dao实现类;
7 : 创建业务逻辑层的接口类;
8:创建业务逻辑层的接口实现类;
9 : 创建测试类。


第一步:建库建表:略

第二步:创建实体类

package com.jdbcLean;
import java.io.Serializable;
import java.sql.Blob;
import java.sql.Date;

public class User implements Serializable {
    private static final long serialVersionUID = 4131873907877763625L;
    private int id;
    private String userName;
    private String password;
    private Date date;
    private String address;   
    private Blob picture;
    public User(){}

   public User(int id, String userName, String password, Date date, String address, Blob picture) {
        this.id = id;
        this.userName = userName;
        this.password = password;
        this.date = date;
        this.address = address;
        this.picture = picture;
    }
	
   public User(int id, String userName, String password, Date date, String address) {
        this.id = id;
        this.userNam
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值