资源描述
课程设计报告
课程:数据库课程设计
学号:
姓名:
班级:
教师:
徐州师范大学
计算机科学与技术学院
课程设计任务书
姓 名
学 号
班 级
课程名称
网上图书管理系统
课程性质
课程设计
同组成员
分工
数据库的分析设计以及前台的JSP系统实现
设计时间
2010年6月10日——2010年10月26日
设计名称
网上图书管理系统
设计要求
网上图书管理系统的要求有:
1. 能按各种方式(比如书名、编号、作者、出版社)查询销售系统的存书情况
2. 管理者能够查询订购人的基本资料、订购图书情况以及自身的基本信息。
3. 管理员可以查看所有的图书订单信息以及系统所有注册用户的信息。
4、管理员可以查看,添加,修改和删除图书和图书类别信息。
5、客户可以浏览所有图书信息,并可以执行图书订购操作。
设计思路
与
设计过程
本系统包括五个实体:管理员,书,图书类别,订单,注册用户
实体管理员和注册用户的信息出于方便,两个实体的信息放在一张表(users表)中,并以sysRole标志区分管理员和注册用户。
图书信息放在books表中,订单信息存放在goods表中,图书类别信息存放在sorts表中。words表中存放客户对图书的评价信息,
但本系统没有实现该功能模块。
系统中的各张表之间的关系图如下:
计划与进度
2010-6-10至2010-6-15系统需求分析阶段
2010-6-16至2010-6-24系统开发阶段
2010-6-25至2010-6-26撰写课程设计报告
任课教师
意 见
说 明
本系统主要实现对网上图书信息和用户信息的管理,主要功能为管理客户信息,图书和图书类别信息等。本系统功能模块分为:登录模块,注册模块,找回密码模块,客户信息管理模块,管理员管理模块。登录模块分为普通用户(即为客户)登录和管理员登录模块。注册模块实现客户信息的注册功能。管理员管理模块主要实现图书信息的添加、修改,图书类别信息的查看修改,客户信息的查看和订单信息的查看和管理功能。本系统并不复杂,主要解决的问题是利用关键字对数据库进行查询,对表格记录的插入、删除和更新操作。
本系统重在对数据库一些方法的熟悉与掌握,其中包括从数据库的概念模型也就是ER图的建立,数据库及其基本表的建立,而后数据的录入,最后完成一些简单的关系运算表达式的表达和相关的Select 查询语句insert插入语句、delete删除语句和update更新语句的使用。
作为网站对网上图书信息管理系统的要求有:
1. 能按各种方式(比如书名、编号、作者)查询系统的存书情况
2. 管理者能够查询订购人的基本资料、订购图书情况以及自身的基本信息。
3、管理者能够实现图书信息和图书类别信息的添加修改操作,订单信息的查阅和管理(删除)功能。
4、未注册用户(客户)可以通过注册进入和使用该系统。
5、客户添加购物单操作。
一、网上图书销售系统的要求有:
1. 能按各种方式(比如书名、编号、作者)查询销售系统的存书情况
2. 管理者能够查询订购人的基本资料、订购图书情况以及自身的基本信息。
3. 能够查询不同日期不同订购人的订单状况。
4. 能够查询订购人的付款银行。
5. 能够方便的查询图书供应商的情况和供应的数目。
二.ER图
①各个实体属性联系图
②各个实体之间的联系图
三、系统中包含的数据表格
数据库中共包含五张表:users表,books表,goods表,sorts表和words表
各张表的说明:
users表:存放系统中注册用户和管理员详细信息,包含的字段有:
userID:用户注册时系统自动分配的ID值(主键)
userName:存放用户登录系统的用户名
password:存放用户登录系统的密码
realName:存放用户的真实姓名
telephone:存放用户的联系电话
email:存放用户的电子邮箱
createTime:存放用户注册的时间
sysRole:存放用户对系统所具有的权限,客户的sysRole=0,管理员的sysRole=0
表users:(字段创建类型)
books表:存放图书的信息
bookID:图书添加是系统所分配的唯一的ID值(主键)
bookName:存放图书的名称信息
pub:保存图书的出版社信息
author:存放图书的作者信息
price:存放图书的单价信息
sortID:存放图书所属的分类的ID值
intro:存放图书的简介信息
recommendNumber:存放客户的推荐购买数
表books:
sorts表:存放图书的分类信息
sortID:图书分类添加系统自动分配的图书分类号(主键)
sortName:存放图书的分类名称
tag:标记值
表sorts:
words表:存放客户对图书的评价信息
wordID:存放评论的ID值,客户的评论存入数据库时系统自动分配的唯一的ID值(主键)
wordContent:存放客户的评论信息
bookID:存放客户所评论的图书ID值
authorID:存放客户的ID值
createTime:存放评论的发表时间
表words:
goods表:存放客户的订单信息
goodID:存放客户订单的ID值,当订单创建时,系统自动分配(主键)
userID:存放订单相关的客户信息
bookID:存放客户订购单图书的ID值
createTime:存放订单的创建时间
buyNumber::存放客户订购图书的数量
表goods:
四、关系模式
系统中的实体有:管理员,书,订单,客户
关系模式如下:
管理员(userID,userName,password,realName,telephone,email)
客户(userID,userName,password,realName,telephone,email)
书(bookID,bookName,pub,author,price,sortID,intro)
订单(goodID,userID,bookID,createTime,buyNumber)
六、数据库中的五张表之间的关系图
图中的五张表通过表中共同属性建立关联(外键关联)。
表users通过userID与表goods建立关联
表books通过bookID与表goods建立关联
表books通过bookID与表words建立关联
表goods通过bookID与表books建立关联
表sorts通过sortID与表books建立关联
七、系统实现
1、数据库:MSSQL server2005
2、前台开发语言JSP
3、前台开发工具:NetBeans、tomcat 6.0
4、系统模块说明:
系统共分为五大功能模块,分别是:登录模块,注册模块,找回密码模块,客户信息管理模块,管理员管理模块。
①登录模块包含三个子模块:管理员登录,获取密码,客户登录,为管理员和客户提供登录系统和获取密码的渠道。
②注册模块:未注册用户提供注册的渠道,使其可以得到进入系统的凭证
③找回密码模块:与获取密码模块,二者功能相同,都是提供获取密码的渠道
④客户信息管理模块:客户管理自己的图书相关信息,创建订单等
⑤管理员管理模块:为管理员提供管理信息系统信息的渠道,可以进行图书的添加,修改,如数类别信息的添加和修改,订单信息的查看和删除,注册用户信息的查看等。
结构图如下:
系统功能模块图
登录验证模块和图书信息录入模块流程图如下:
输入用户名
开始
验证用户名和密码是否正确
输入密码
登录成功进入主界面
结束
是
否
选择帐号类型
登录验证模块
开始
结束
输入图书基本信息
判断输入是否正确且完整
添加该信息到关联表并写入数据库
是
否
图书信息录入模块
JSP中数据库连接代码:
本系统提供两种连接数据的方式:
① JDBC方式连接(不需另建数据源)
public class Open_DB {
//数据库用户名
String userName = "sa"; //用户名为sa
//数据库访问的用户名和密码
String password = ""; //访问数据库的密码为空
//数据库驱动—JDBC的驱动程序
String DBDirver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
//存放连接错误信息的变量
//数据库连接url
String url = jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=DB_OBSS"; //JDBC数据源路径
//数据库连接对象
public static Connection dbConn;
//初始化成员变量
public Open_DB() {
try {
Class.forName(DBDirver);
dbConn = DriverManager.getConnection(url, userName, password);
System.out.println("success!"); //连接成功是的提示信息
} catch (SQLException ex) {
Logger.getLogger(Open_DB.class.getName()).log(Level.SEVERE, null, ex);
System.out.println("Connection failed 1");
} catch (ClassNotFoundException ex) {
System.out.println("failed!"); //连接失败时提示信息
dbConn = null;
Logger.getLogger(Open_DB.class.getName()).log(Level.SEVERE, null, ex);
System.out.println("Connection failed 2");
}
System.out.println("connection success!");
}
public static Connection getConn() { //获取数据库的连接方法
return dbConn;
}
}
JDBC连接数据需要添加与连接的数据库相关的驱动jar包,本系统使用的是MSSQL server 2005 所以需要的jar有三个,分别是:msbase.jar, mssqlserver.jar, msutil.jar 所需的三个jar包均已包含在项目文件中。
从上面的代码可以看出,连接数据库的用户名为sa(系统管理员),但默认情况下,MSSQL server2005中的sa帐户是禁用的,需要将其启用而且还有将密码置为空,或是改用其它的数据库访问帐户。访问的数据库为DB_OBSS。
② 用JDBC-ODBC方式连接MSSQL server2005(需要另外建立数据源,本系统运行在Windows server 2003 平台下)。
建立数据源的步骤如下:
a、开始—>管理工具-àODBC数据源
如下图:
Windows server 2003 中设置数据源图示①
b、打开ODBC数据源管理器—>选择系统DNSà添加新数据源à选择SQL Server 驱动程序—>完成。见下图:
Windows server 2003 中设置数据源图示②
c、进入”创建SQL Server的数据源”对话框à按图示填写参数信息。(注:服务器(S)中的”.”表示连接到本地的SQL Server服务器,同(local)),见下图:
Windows server 2003 中设置数据源图示③
d、按下图填写连接SQL Server的登录参数:
Windows server 2003 中设置数据源图示④
e、选择要连接的数据库,本示例连接的是系统使用的DB_OBSS数据库,单击下一步。见下图:
Windows server 2003 中设置数据源图示⑤
f、按下图,默认即可,单击完成:
Windows server 2003 中设置数据源图示⑥
g、弹出“ODBC Microsoft SQL Server安装”对话框,确认之前填写的数据库连接参数,并单击测试数据源按钮,即可。见下图:
Windows server 2003 中设置数据源图示⑦
h、弹出如下图所示的对话框,则表示数据源创建成功!
Windows server 2003 中设置数据源图示⑧
JDBC-ODBC连接数据库的代码如下:
public class Open_DB {
//数据库用户名
String userName = "sa"; //用户名为sa
//数据库访问的用户名和密码
String password = ""; //访问数据库的密码为空
//数据库驱动—JDBC的驱动程序
String DBDirver = "sun.jdbc.odbc.JdbcOdbcDriver"; //ODBC驱动程序
//数据库连接url
String url = "jdbc:odbc:DB_OBSS"; //odbc数据源名称为DB_OBSS
//JDBC-ODBC数据源路径
//数据库连接对象
public static Connection dbConn;
//初始化成员变量
public Open_DB() {
try {
Class.forName(DBDirver);
dbConn = DriverManager.getConnection(url, userName, password);
System.out.println("success!"); //连接成功是的提示信息
} catch (SQLException ex) {
Logger.getLogger(Open_DB.class.getName()).log(Level.SEVERE, null, ex);
System.out.println("Connection failed 1");
} catch (ClassNotFoundException ex) {
System.out.println("failed!"); //连接失败时提示信息
dbConn = null;
Logger.getLogger(Open_DB.class.getName()).log(Level.SEVERE, null, ex);
System.out.println("Connection failed 2");
}
System.out.println("connection success!");
}
public static Connection getConn() { //获取数据库的连接方法
return dbConn;
}
}
系统中用到的sql语句主要有:select查询语句,insert插入语句和update更新语句。(详见系统源码部分)。
如:
insert into books (bookName,author,sortID,price,pub,intro,recommendNumber) values('" + this.getBookName() + "',"+ "'" + this.getAuthor() + "'," + this.getSortID() + "," + this.getPrice() + "," + "'" + this.getPub() + "'," + "'" + this.getIntro() + "'," this.getRecommendNumber() + ")";向数据库中插入新图书信息。
update books set bookName=?,author=?,sortID=?,price=?,pub=?,intro=? where bookID=?";修改指定bookID对应的图书信息。
在NetBeans6.8中网站的项目文件见下图:
项目文件结构①
项目文件结构②
项目文件结构③
八、系统功能截图
图8-1 OBBS系统首页
系统首页提供客户和管理员登录以及找回密码的功能。本例先以admin(客户帐户)帐户登录,用户类型选择普通用户。
图8-2 客户功能模块首页
本页面为注册帐户提供管理个人信息和浏览书店图书信息的链接。
图8-3网上书店客户注册页面
本例注册用户名填写为08ji31,密码为08ji31。注册用户类型均为普通用户。
图8-4管理员zhlh的管理首页
为管理员提供基本的图书信息添加,修改,图书类别增加,修改,订单信息查看和删除以及所有注册用户的信息。
图8-5图书信息添加页面(只有系统管理员可以执行本操作)
填写要添加图书的信息,如上图所示。
图8-6图书信息添加成功页面
图8-7图书信息修改页面
图8-8图书类别管理页页面
本页面提供添加新图书类别和修改已有图书类别信息的功能。
图8-9新图书类别添加页面
添加一个新的图书类别信息,网络管理类别。
图8-10用户信息浏览页面
图8-11客户订单信息管理页面
本页面提供查看和删除订单的功能。
图8-12找回密码页面
本页面中通过验证用户填写的注册用户和注册邮箱来获忘记的密码信息。信息正确则系统返回用户的登录密码。
撰写人:张立辉
日 期:2010-6-26
23
展开阅读全文