一、项目描述:
项目中主要使用了:Java SE、JSP、Servlet、Tomcat、MySQL、PowerDesigner、starUML、Dreamweaver、数据库连接池、Commons DbUtils、JSTL、Displaytag、HTML、Javascript、CSS等技术和工具。
二、项目设计的步骤
1)、StarUML设计用例图
2)利用PowerDesigner调整数据库模型
一个blog对应category,多个comment 对应一个blog。
3)利用Navicat for MySQL导入上面设计产生的blog.sql设计博客中的blog、category 、comment、 users几个模块的属性
其中
blog属性包括 id,category_id, title, content, createdtime
category属性包括id ,name,level
comment属性包括id ,blog_Id, username,content,createdtime,
users属性包括 id,username,password
4)前台于后台应用技术介绍
a. 前台可以让普通用户查看博文,发表评论,根据分类、评论、博文的链接都可进入到具体需要访问的博文页内。
b.后台实现了发博文博文管理 | 添加分类 | 分类管理 | 评论管理 | 修改密码 | 退出
发博文采用可视化的HTML-- FCKeditor技术
FCKeditor是一个专门使用在网页上属于开放源代码的所见即所得文字编辑。它志于轻量化,不需要太复杂的安装步骤即可使用。
在addBlog.jsp中的设置:
以上后台的功能的实现大部分需要mySql中的语句控制,利用Connect Pool获取数据库的连接,利用DButils中的核心类,生成对象时传递数据源对象的运用。将其封装。保存在DbHelper.java 中。
类展示:
功能的实现需要数据库的数据,需要先调用sql语句,然后才能连接数据池,传递数据源对象.
后台发博文|博文管理 | 添加分类 | 分类管理 | 评论管理 | 修改密码 | 退出这些功能用到的sql语句:
1、blog(博客用到的sql语句)
// 添加博文的SQL语句,now()生成当前系统时间(后台:发博文)
String sql = "insert into blog (title,content,category_id,createdtime) values (?,?,?,now())";
// 查询所有的博客内容,也就是所有的Blog对象(后台博文管理)
按照blog 的id从大到小给b.category_id=c.id(ji)的blog的属性排序。
String sql = "select b.id as id ,title,content,createdtime, c.name as category from blog b,category c where b.category_id=c.id order by b.id desc";
String sql = "select id,title,content,category_id as categoryid from blog where id=" + id;
2、category(分类用到的sql语句)
list category (后台)
String sql = "select id,name,level from category order by level desc,id desc";
delete category' (后台分类管理)
String sql = "delete from category where id=" + id;
preEdit category(后台分类管理)
String sql = "select id,name,level from category where id=" + id;
update category (后台分类管理)
String sql = "update category set name=?,level=? where id=?";
add category(后台添加分类)
String sql = "insert into category (name,level) values (?,?)";
3、comment(评论用到的sql 语句)
add comment (前台)
String sql = "insert into comment (username,content,blog_id,createdtime) values (?,?,?,now())";
list comment(后台)
String sql = "select id,username,content,createdtime from comment order by id desc";
delete comment(后台评论管理)
String sql = "delete from comment where id=" + id;
preEdit comment(后台评论管理)
String sql = "select id,username,content from comment where id=" + id;
postEdit comment(后台评论管理)
String sql = "update comment set username=?,content=? where id=?";
4、users(用户用到的sql 语句)
users login(后台)
String sql = "select id,username,password from users where username=? and password=?";
user changepassword(后台:修改密码)
String sql = "update users set password=? where id=?";
用户退出登陆(后台:退出)
session.invalidate();
get blog
// 根据博文的id值读取一篇博文
String sql = "select id,title,content,createdtime from blog where id="+ id;
get category
// 根据博文的id,读取这个博文下的所有评论
sql = "select id,username,content,createdtime from comment where blog_id="+ id + " order by id desc";
// 查询分类
sql = "select id,name from category order by level desc,id desc";
// 查询最新的评论
sql = "select id,username,content,blog_id as blogid from comment order by id desc limit 0,4";