JavaWeb 第 2 章 任务二 2.2.2 优化数据库操作的编码实现

本文详细介绍JavaWeb应用设计中的BaseDao类作用与实现,包括数据库连接获取、增删改查操作及资源释放。同时,探讨如何使用接口优化新闻编辑功能,提升代码复用性和维护性。

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

JavaWeb 应用设计及实战 目录

1. BaseDao 类

   (1)BaseDao 类的作用

      到目前为止,我们已经学习了如何使用 JDBC 查询数据库以及如何使用 JDBC 实现

对新闻信息的编辑。仔细观察,不难发现,在进行数据库操作时,很多代码时重复编写

的,如获取数据库连接、释放资源。而不同的则是 SQL 语句、参数数量及对 SQL 执行

结果的处理。因此,数据库操作代码时可以进行优化的,将需要重复编写的代码进行提

取,单独存放到一个类中,在实际应用开发中,通常将这个类定义为 BaseDao 类。

    (2)编写 BaseDao 类

     编写 BaseDao 类,需要实现以下几个功能。

  • 获取数据库的连接。
  • 执行数据库的增、删、该、查操作。
  • 执行每次访问结束后的资源释放工作。

     按照 BaseDao 类的作用,编写方法逐一实现获取数据库连接,数据的增、删、改、

查以及释放资源。

   示例 8

    编写一个 BaseDao 类,能够获取数据库连接,具备数据库增、删、改、查的通用方法,

以及释放资源的通用方法。

   关键代码:

// 基类:数据库操作通用类
public class BaseDao{
    protected connection conn;
    protected PreparedStatement ps;
    protected Statement stmt;
    protected ResultSet rs;
    //获取数据库连接
    public boolean getConnection(){
        return true;
    }
    //增、删、改
    public int executeUpdate (String sql,Object[] params){
        int updateRows=0;
        return updateRows;
    }
    //查询
    public ResultSet executeSQL(String sql,Object[] params){
        return rs;
    }
    //关闭资源
    public boolean closeResource(){
        return true;
    }
}

    在示例 8 中列举了在BaseDao 类中需要完成的方法,具体的实现方法这里不再

详细描述。了解具体实现请扫描二维码。

      代码优化 二维码……

     注意

         在本节中,将实现数据库信息 增、删、改、查的通用方法编写在 BaseDao 类中,

这种方式不是必须的。在实际开发中 BaseDao 类可以只包含数据库访问相关的方法,

而对于数据库记录操作的方法可以单独编写一个专门的类中。

  2.使用接口优化新闻编辑

     在之前完成新闻信息查询和新闻信息编辑时,将实现的方法均写在类中,现在只需

要将类转换成接口,然后通过实现这个接口中的方法就能够实现对新闻信息的读取和

编辑操作。

     示例 9

    编写接口,实现对新闻信息的 增、删、改、查。

    关键代码:

public interface NewsDao{
    //查询新闻信息
    public void getNewsList();
    //增加新闻信息
    public void add(int id,int categoryId,String title,String summary),
        String content,Date createdate);
    //删除新闻信息
    public void delete(int id);
    //修改新闻标题信息
    public void update(int id,String title);
}

接口编写完毕后,就需要编写接口的实现类来实现接口中定义的方法。

    示例 10

    编写新闻信息接口的具体实现类,并实现相应的增、删、改、查方法。

    关键代码:

public class NewsDaoImpl extends BaseDao implements NewsDao{
    //查询新闻信息
    public void getNewsList(){
        ……
    }
    //增加新闻信息
    public void add(int id,int categoryId,String title,String summary,
                String content,Date createdate){
        ……
    }
    //删除新闻信息
    public void delete(int id){
        ……
    }
    //修改新闻标题信息
    public void update (int id,Strig title){
        ……
    }
}
            

      在示例 10 中编写了一个 NewsDaoImpl 接口实现类,继承了 BaseDao 的同时又实现

了示例 9 中的 NewsDao 接口,重写了其方法,具体实现方法这里不再赘述。

      提示

           在编写接口实现类时,在实现接口的同时,一般还继承 BaseDao 类,就是

     因为在实现类中可以直接调用 BaseDao 类中定义好的方法,而不用再去导入相应

     的类。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值