数据库系统课程设计(图书网购管理系统)_第1页
数据库系统课程设计(图书网购管理系统)_第2页
数据库系统课程设计(图书网购管理系统)_第3页
数据库系统课程设计(图书网购管理系统)_第4页
数据库系统课程设计(图书网购管理系统)_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库系统课程设计-图书网购网站管理系统一、 课程设计题目21.1 图书网购网站管理系统:21.2 课程设计的任务与要求21.2.1 目的与任务:31.2.2 实验基本要求:31.2.3 开发环境说明:3二、 功能需求分析及模块设计42.1 总模块列表:4三 、 数据库概念设计53.1 实体ER图53.2 整体ER图如图所示:7四、数据库逻辑设计84.1 关系数据库模型简述84.2数据库设计8五 、系统开发95.1 数据库建立95.2 系统DAO方法(用户存放对数据库操作的所有方法)145.2.1 接口类(manage.java):145.2.2方法实现类(DAO.java):165.2.3 控制层方法225.2.4系统表示层代码:51六、总结:83 一、 课程设计题目1.1 图书网购网站管理系统:一家书店可以为店中现有的图书增加网上销售的渠道。与现在流行的当当网,卓越原理基本相同。会员通过提交订单,卖家便可根据订单配货发送。卖家可以在随时通过该网站管理系统对会员信息,订单信息,图书信息进行管理。1.2 课程设计的任务与要求1.2.1 目的与任务:1. 常务数据库设计和实现的基本过程2. 常务数据库模式设计、分析和实现的方法3. 了解数据库应用网站开发的一般过程1.2.2 实验基本要求:(1) 学习相关的预备知识(2) 按照数据库设计与实现过程完成数据库的设计,网站的开发,上级调试运行(3) 写出课程设计报告1.2.3 开发环境说明:处理器:Intel Pentium 4 3.06以上内存:256以上操作系统:windows 2000/XP/win7开发软件:Myeclipse 8.5数据库:Mysql二、 功能需求分析及模块设计2.1 总模块列表:总模块名称子模块名称子模块功能描述备注管理员后台会员管理1、显示查询2、删除会员图书管理1、显示查询(书名关键字模糊搜索) (图书类别编号)2、添加图书3、删除图书4、更改图书信息5、分页查询订单管理1、显示查询(条件:订单编号、订单状态、订单所属会员)2、删除订单3、更改订单信息4、显示订单详情管理员管理1、更改管理员信息会员后台会员管理1、会员信息更改订单管理1、订单显示(按时间降序)2、显示订单详情图书管理1、显示查询(书名关键字模糊搜索) (图书类别编号)2、查看图书详情购物车管理1、购买图书2、下订单3、计算订单金额三 、 数据库概念设计 3.1 实体ER图本实例根据上面的需求分析,设计规划出的实体有:用户实体、管理员实体、图书实体、订单实体、订单详情实体、图书类别实体。各个实体的E-R图描述如下:用户实体E-R图管理员ER图图书实体ER图图书类别实体ER图订单实体ER图订单详情ER图3.2 整体ER图如图所示:四、数据库逻辑设计4.1 关系数据库模型简述关系数据库的数据模型(即关系模型)是由一组关系模式组成,因而ER图向关系模型转换实际上就是将实体(包括实体的属性)和联系转化为关系模型,一般遵循以下基本原则:1. 一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。2. 一个1:X(X为1或者n)联系通常与某一端的关系模式合并,其中1:n的联系需要与n端对应的关系模式合并。需要在合并的关系模式的属性中加入另一个关系模式的码和联系本身的属性。3. 一个m:n联系转换为一个关系模式。与该关系相连的各实体的码以及本身的属性均转换为关系的属性,而关系的码为各个实体码的组合。4. 三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各个实体的码的组合。5. 具有相同码的关系模式可合并。4.2数据库设计数据库采用Mysql来建立:数据库名称为bookmange1. 用户表:字段名字段类型字段说明UidInteger自动增长,主键UsernameVARCHAR(45)用户名UserpassVARCHAR(45)密码truenameVARCHAR(45)真实姓名EmailVARCHAR(45)电子邮箱2. 订单表:字段名字段类型字段说明OidInteger自动增长,主键UseridInteger会员编号OrderdateDATETIME订单时间AddressVARCHAR(45)送货地址UsernameVARCHAR(45)会员名MobileVARCHAR(45)会员手机StatusInteger状态(是否发货)1为已经发货0为暂未发货3. 订单详情表:字段名字段类型字段说明OdidInteger自动增长,主键OidInteger订单编号UseridInteger会员编号BookidInteger图书编号UnitpriceDOUBLE图书单价QuantityInteger购买图书数量DiscountDOUBLE图书折扣4. 图书表:字段名字段类型字段说明BookidInteger自动增长,主键CateidInteger图书类别编号BooknameVARCHAR(45)图书名称BookdescTEXT图书内容UnitpriceDOUBLE图书单价BooksortInteger图书排序参数AuthorVARCHAR(45)图书作者StatusInteger状态(是否还有库存)1为有货0为缺货DiscountDOUBLE折扣5. 图书类别:字段名字段类型字段说明CateidInteger自动增长,主键CatenameVARCHAR(45)图书类别名称6. 管理员表:字段名字段类型字段说明AdminidInteger自动增长,主键anameVARCHAR(45)管理员登录名ApassVARCHAR(45)密码TruenameVARCHAR(45)真实姓名EmailVARCHAR(45)电子邮箱五 、系统开发5.1 数据库建立- Table structure for table admin-DROP TABLE IF EXISTS admin;CREATE TABLE admin ( adminid int(10) unsigned NOT NULL AUTO_INCREMENT, aname varchar(45) NOT NULL, apass varchar(45) NOT NULL, truename varchar(45) CHARACTER SET gbk DEFAULT NULL, email varchar(45) DEFAULT NULL, PRIMARY KEY (adminid) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;- Table structure for table books-DROP TABLE IF EXISTS books;CREATE TABLE books ( bookid int(10) unsigned NOT NULL AUTO_INCREMENT, cateid int(10) unsigned DEFAULT NULL, bookname varchar(100) CHARACTER SET gbk DEFAULT NULL, bookdesc text CHARACTER SET gbk, unitprice double DEFAULT NULL, booksort int(10) unsigned DEFAULT NULL, author varchar(50) CHARACTER SET gbk DEFAULT NULL, status int(10) unsigned DEFAULT NULL, discount double DEFAULT NULL, PRIMARY KEY (bookid) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=latin1;- Table structure for table category-DROP TABLE IF EXISTS category;CREATE TABLE category ( cateid int(10) unsigned NOT NULL AUTO_INCREMENT, catename varchar(50) CHARACTER SET gbk DEFAULT NULL, PRIMARY KEY (cateid) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;- Table structure for table orderdetails-DROP TABLE IF EXISTS orderdetails;CREATE TABLE orderdetails ( odid int(10) unsigned NOT NULL AUTO_INCREMENT, oid int(10) unsigned DEFAULT NULL, userid int(10) unsigned DEFAULT NULL, bookid int(10) unsigned DEFAULT NULL, unitprice double DEFAULT NULL, quantity int(10) unsigned DEFAULT NULL, discount double DEFAULT NULL, PRIMARY KEY (odid) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=latin1;- Table structure for table orders-DROP TABLE IF EXISTS orders;CREATE TABLE orders ( oid int(10) unsigned NOT NULL AUTO_INCREMENT, userid int(10) unsigned DEFAULT NULL, orderdate datetime DEFAULT NULL, address varchar(45) CHARACTER SET gbk DEFAULT NULL, username varchar(45) CHARACTER SET gbk DEFAULT NULL, mobile varchar(45) DEFAULT NULL, status int(10) unsigned NOT NULL DEFAULT 0, PRIMARY KEY (oid) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;- Table structure for table userinfo-DROP TABLE IF EXISTS userinfo;CREATE TABLE userinfo ( uid int(10) unsigned NOT NULL AUTO_INCREMENT, username varchar(45) DEFAULT NULL, userpass varchar(45) DEFAULT NULL, truename varchar(45) DEFAULT NULL, email varchar(45) DEFAULT NULL, PRIMARY KEY (uid) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=gbk;5.2 系统DAO方法(用户存放对数据库操作的所有方法)5.2.1 接口类(manage.java):package com.shawn.dao;import java.util.List;import com.shawn.object.Admin;import com.shawn.object.Books;import com.shawn.object.Orderdetails;import com.shawn.object.Orders;import com.shawn.object.Userinfo;public interface Manager /图书部分方法public void addBook(Books book);public void editBook(Books book);public void deleteBook(Books book);public List getBook(int start,int size);public Long getBookCount();public List getBookByKey(String key,int start,int size);public Long getBookCountByKey(String key);public List getBookByCateid(String cateid,int start,int size);public Long getBookCountByCateid(String cateid);public Books getBookByBookid(Integer wid);public List getBookByKeyCateid(String key, String cateid,int start,int size); public Long getBookCountByKeyCateid(String cateid,String key);/会员部分方法public void addUser(Userinfo user);public void deleteUser(Userinfo user);public void editUser(Userinfo user);public List getUser();public List getUserByKey(String key);public Userinfo getUserByUid(Integer uid);public Userinfo userlogin(String u, String p);/订单部分方法public void deleteOrder(Orders order);public void editOrder(Orders order);public void addOrder(Orders o,List ods);public List getOrders();public List getOrdersByUsername(String username);public List getOrdersByOid(String oid);public List getOrdersByStatus(String status);public List getOrdersByUsernameStatus(String username,String status);public List getOrderByUid(Integer uid);public Orders getOrderByOid(Integer Oid);/订单详情部分方法public void deleteOrderDetail(Orderdetails orderdetail);public List getOrderdetailsByOid(Integer oid);/登录部分方法public void editAdmin(Admin admin);public Admin adminlogin(String u, String p);5.2.2方法实现类(DAO.java):package com.shawn.dao;import java.util.List;import org.hibernate.Query;import org.hibernate.Session;import com.shawn.HibernateSessionFactory;import com.shawn.object.*;public class DAO implements Manager /*图书部分方法 * */添加图书对象public void addBook(Books book) Session s = com.shawn.HibernateSessionFactory.getSession();org.hibernate.Transaction tx = s.beginTransaction();s.save(book);mit();HibernateSessionFactory.closeSession();/删除图书对象public void deleteBook(Books book)Session s = com.shawn.HibernateSessionFactory.getSession();org.hibernate.Transaction tx = s.beginTransaction();s.delete(book);mit(); HibernateSessionFactory.closeSession();/编辑图书对象public void editBook(Books book) Session s = com.shawn.HibernateSessionFactory.getSession();org.hibernate.Transaction tx = s.beginTransaction();s.update(book);mit();/分页检索-获取全部图书public List getBook(int start,int size) Query q=HibernateSessionFactory.getSession().createQuery(from Books order by booksort desc);q.setFirstResult(start);q.setMaxResults(size);return q.list();/获取全部图书的数量public Long getBookCount()Query q=HibernateSessionFactory.getSession().createQuery(select count(bookid) from Books);return (Long)q.uniqueResult();/分页检索-按书名模糊搜索图书public List getBookByKey(String key,int start,int size)String hql=from Books where bookname like % + key + % order by booksort desc;Query q=HibernateSessionFactory.getSession().createQuery(hql);q.setFirstResult(start);q.setMaxResults(size);return q.list();/获取相关书名的图书数量public Long getBookCountByKey(String key)Query q=HibernateSessionFactory.getSession().createQuery(select count(bookid) from Books where bookname like ? order by booksort desc);q.setString(0,%+key+%);return (Long)q.uniqueResult();/按图书类别ID模糊搜索图书public List getBookByCateid(String cateid,int start,int size) String hql=from Books where cateid= + cateid + order by booksort desc;Query q=HibernateSessionFactory.getSession().createQuery(hql);q.setFirstResult(start);q.setMaxResults(size);return q.list();/获取相关类别图书的数量public Long getBookCountByCateid(String cateid)Query q=HibernateSessionFactory.getSession().createQuery(select count(bookid) from Books where cateid like ? order by booksort desc);q.setString(0,%+cateid+%);return (Long)q.uniqueResult();/按书名和类别ID模糊搜索图书public List getBookByKeyCateid(String key, String cateid,int start,int size) String hql=from Books where bookname like % + key + % and cateid=+ cateid + order by booksort desc;Query q=HibernateSessionFactory.getSession().createQuery(hql);q.setFirstResult(start);q.setMaxResults(size);return q.list();public Long getBookCountByKeyCateid(String cateid,String key)Query q=HibernateSessionFactory.getSession().createQuery(select count(bookid) from Books where cateid like ? + and bookname like ? order by booksort desc);q.setString(0,%+cateid+%);q.setString(1,%+key+%);return (Long)q.uniqueResult();/按图书ID获取图书对象public Books getBookByBookid(Integer wid) return (Books) com.shawn.HibernateSessionFactory.getSession().createQuery(from Books where bookid= + wid + ).uniqueResult();/*会员部分方法 * */添加会员对象public void addUser(Userinfo user) Session s = com.shawn.HibernateSessionFactory.getSession();org.hibernate.Transaction tx = s.beginTransaction();s.save(user);mit();HibernateSessionFactory.closeSession();/删除会员对象public void deleteUser(Userinfo user)Session s = com.shawn.HibernateSessionFactory.getSession();org.hibernate.Transaction tx = s.beginTransaction();s.delete(user);mit(); HibernateSessionFactory.closeSession();/编辑会员对象public void editUser(Userinfo user) Session s = com.shawn.HibernateSessionFactory.getSession();org.hibernate.Transaction tx = s.beginTransaction();s.update(user);mit();/分页检索-获取全部会员对象public List getUser() return com.shawn.HibernateSessionFactory.getSession().createQuery(from Userinfo order by username desc).list();/分页检索-根据会员名模糊搜索public List getUserByKey(String key) return com.shawn.HibernateSessionFactory.getSession().createQuery(from Userinfo where username like % + key+ % order by username desc).list();/根据会员ID获取会员对象public Userinfo getUserByUid(Integer uid) return (Userinfo) com.shawn.HibernateSessionFactory.getSession().createQuery(from Userinfo where uid= + uid + ).uniqueResult();/*订单部分方法 * */添加订单对象public void addOrder(Orders o, List ods) / 添加订单和订单明细Session s = com.shawn.HibernateSessionFactory.getSession();org.hibernate.Transaction tx = s.beginTransaction();s.save(o);for (Orderdetails od : ods) od.setOid(o.getOid();s.save(od);mit();HibernateSessionFactory.closeSession();/删除订单对象public void deleteOrder(Orders order)Session s = com.shawn.HibernateSessionFactory.getSession();org.hibernate.Transaction tx = s.beginTransaction();s.delete(order);mit(); HibernateSessionFactory.closeSession();/编辑订单对象public void editOrder(Orders order) Session s = com.shawn.HibernateSessionFactory.getSession();org.hibernate.Transaction tx = s.beginTransaction();s.update(order);mit();/分页检索-获取全部订单public List getOrders() return com.shawn.HibernateSessionFactory.getSession().createQuery(from Orders order by orderdate desc).list();/分页检索-根据会员名相关订单模糊检索public List getOrdersByUsername(String username) return com.shawn.HibernateSessionFactory.getSession().createQuery(from Orders where username= + username + ).list();/根据订单ID获取订单public List getOrdersByOid(String oid) return com.shawn.HibernateSessionFactory.getSession().createQuery(from Orders where oid= + oid+ ).list();/分页检索-根据订单状态获取订单public List getOrdersByStatus(String status) return com.shawn.HibernateSessionFactory.getSession().createQuery(from Orders where status=+status+ ).list();/分页检索-根据会员名和订单状态获取订单public List getOrdersByUsernameStatus(String username,String status)return com.shawn.HibernateSessionFactory.getSession().createQuery(from Orders where username= + username + and status= + status + ).list();/根据订单用户名获取相关订单public List getOrderByUid(Integer uid) return com.shawn.HibernateSessionFactory.getSession().createQuery(from Orders where userid= + uid+ order by orderdate desc).list();public Orders getOrderByOid(Integer oid) return (Orders) com.shawn.HibernateSessionFactory.getSession().createQuery(from Orders where oid= + oid + ).uniqueResult();public void deleteOrderDetail(Orderdetails orderdetail)Session s = com.shawn.HibernateSessionFactory.getSession();org.hibernate.Transaction tx = s.beginTransaction();s.delete(orderdetail);mit(); HibernateSessionFactory.closeSession();public List getOrderdetailsByOid(Integer oid) return com.shawn.HibernateSessionFactory.getSession().createQuery(from Orderdetails where oid= + oid + ).list();public void editAdmin(Admin admin) Session s = com.shawn.HibernateSessionFactory.getSession();org.hibernate.Transaction tx = s.beginTransaction();s.update(admin);mit();public Userinfo userlogin(String u, String p) Query q = HibernateSessionFactory.getSession().createQuery(from com.shawn.object.Userinfo where username=? and userpass=?);q.setString(0, u);q.setString(1, p);return (Userinfo) q.uniqueResult();public Admin adminlogin(String u, String p) Query q = HibernateSessionFactory.getSession().createQuery(from com.shawn.object.Admin where aname=? and apass=?);q.setString(0, u);q.setString(1, p);return (Admin) q.uniqueResult();5.2.3 控制层方法管理员相关控制方法(AdminServlet.java):package com.shawn.servlet;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.shawn.dao.DAO;import com.shawn.dao.Manager;import com.shawn.object.Admin;import com.shawn.object.Userinfo;public class AdminServlet extends HttpServlet Manager m=new DAO();public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException String action = request.getParameter(action);if (main.equals(action) this.doMain(request, response);else if(edit.equalsIgnoreCase(action)this.doEditAdmin(request, response);else if(update.equalsIgnoreCase(action)this.doUpdate(request,response);else if(deleteuser.equalsIgnoreCase(action)this.doDeleteUser(request,response);else if(userlist.equalsIgnoreCase(action)this.doUserList(request,response);else if(exit.equalsIgnoreCase(action)this.doExit(request,response);/* * 切换用户,并清空session中的admin对象已经其他变量 */private void doExit(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.getRequestDispatcher(/WEB-INF/jsp/admin/exit.jsp).forward(request, response);/* * 管理员后台管理-用户管理-以表格形式显示所有用户并且可以根据用户名模糊搜索 */priv

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论