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 类中定义好的方法,而不用再去导入相应
的类。