源,从而获得jdbc/blog数据源的引用,得到DataSource对象的引用后,就可以通过DataSource的getConnection()方法获得数据库连接对象。
b)连接数据库和操作数据库;代码如下: // 构造数据库的连接和访问类 {
}
public void setInt(int index, int value) throws SQLException { }
// 执行SQL语句并返回字段集
public ResultSet executeQuery() throws SQLException { }
DBConnect()方法:该方法主要负责获得数据库连接对象。
if (prepstmt != null) {
return prepstmt.executeQuery(); prepstmt.setInt(index, value); prepstmt.setString(index, value); public DBConnect() throws Exception {
// 获得数据库连接对象 conn=DB.getConnection(); // 创建一个JDBC声明
stmt = conn.createStatement();
// 预设SQL语句
public void prepareStatement(String sql) throws SQLException { }
// 设置索引值位置的对应值
public void setString(int index, String value) throws SQLException
prepstmt = conn.prepareStatement(sql);
} else
return null;
prepareStatement(String sql)方法:该方法主要完成预设SQL语句,只有一个用来接收SQL语句的参数,如果SQL语句有误将抛出异常。
setString(int index, String value)方法:该方法用于设置预设SQL语句中的相应字段值,index表示索引位置,value表示需设置字符串类型的值。
setInt(int index, int value)方法:该方法用于预设SQL语句中的相应字段值,index表示索引位置,value表示需设置整型类型的值。
executeQuery()方法:该方法用于执行预设的SQL语句。 5.2.2编写JavaBean类
为每一个数据库表建一个JavaBean类,完成对该表字段的获取和设置。 博客信息管理系统所用的JavaBean类列表如表5.1所示。
表5.1 JavaBean类列表
JavaBean类 Blog类 Article类 CateGory类 FeedBack类 Essay类
说明
博客管理员表对应的JavaBean类 日志表对应的JavaBean类 类别表对应的JavaBean类 评论表对应的JavaBean类 随笔表对应的JavaBean类
Feedback类的代码如下: public class Feedback { // 属性,对应数据表中的字段名
private int feedbackid; private String title;
// 字段的访问和设置方法
public int getFeedbackid() { }
public void setFeedbackid (int feedbackid) {
this. feedbackid = feedbackid; return feedbackid;
}
Feedback类:通过getFeedbackid()方法获取feedbackid属性的值,通过
setFeedbackid (int feedbackid)方法设置feedbackid属性的值。 5.2.3管理类设计
上面每一个JavaBean类都有一个相对应的管理类,是在JavaBean类及数据库相关类的基础上完成对数据库表的访问、更新、统计操作。
博客信息管理系统所用的管理类列表如表5.2所示。
表5.2 管理类列表
管理类 BlogMgr类 Article类 FeedBack类 Essay类
说明
完成对博客管理员表的查询、更新及统计 完成对日志表的查询、更新及统计 完成对评论表的查询、更新及统计 完成对随笔表的查询、更新及统计
FeedbackMgr类的部分代码如下: public class FeedbackMgr {
/*
* 添加评论 */
public void add(Feedback feedback){
DBConnect dbc = null; ResultSet rs = null; try {
// 新建数据库连接和访问对象 dbc = new DBConnect(); // 预设sql语句
dbc.prepareStatement(\
feedback
(title,content,publishtime,lastmodifytime,username,articleid)
VALUES ( ?,?,?,?,?,?)\
// 设置对应值
dbc.setString(1, feedback.getTitle()); dbc.setString(2, feedback.getContent()); dbc.setDate(3, new java.sql.Date(new
java.util.Date().getTime()));
dbc.setDate(4, new java.sql.Date(new
java.util.Date().getTime()));
/*
* 查询所有评论(按最后修改时间) */
public Collection getAllByLastModifyTime() {
DBConnect dbc = null;
Collection c = new ArrayList(); ResultSet rs = null; try {
// 新建数据库连接和访问对象 dbc = new DBConnect(); // 执行SQL语句,返回字段集
dbc.setString(5, feedback.getUsername()); dbc.setInt(6, feedback.getArticleid()); // 执行该更新语句 dbc.executeUpdate();
rs=dbc.executeQuery(\by lastmodifytime desc\
Feedback feedback = null; while (rs.next()) {
// 新建评论对象
feedback = new Feedback();
// 设置评论对象相关的属性
feedback.setFeedbackid(rs.getInt(\ feedback.setTitle(rs.getString(\ feedback.setContent(rs.getString(\
feedback.setStrpublishtime(rs.getString(\
feedback.setStrlastmodifytime(rs.getString(\ }
FeedbackMgr类:封装了对评论表的所有操作,包括添加评论、回复评论、删除评论、查询某日志的所有评论(按最后修改时间排序)和查询某用户的所有评论(按最后修改时间排序)等。
feedback.setUsername(rs.getString(\ feedback.setArticleid(rs.getInt(\ }
// 将该评论对象存入集合对象中 c.add(feedback); // 将该评论对象置为null feedback = null;
// 如果结果集不会空,则循环添加该评论对象
5.3系统主要功能模块详述
5.3.1登录模块
当用户需发表新日志或者是对博客进行管理时,就必须先进行登录验证操作,然后进入博客系统后台。用户登录界面图如图5.3所示。 5.3.2日志管理模块
日志管理显示模块列出了日志编号、日志标题以及相应的操作:编辑日志和删除日志。根据选择的分类显示当前分类下的日志列表。当然,对日志进行操作的前提条件是当前登录用户具备相应的管理权限。
日志显示界面图如图5.4所示。