欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    课程设计JavaEEJSP_超市账单管理系统说明书.docx

    • 资源ID:2030840       资源大小:2.75MB        全文页数:61页
    • 资源格式: DOCX        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    课程设计JavaEEJSP_超市账单管理系统说明书.docx

    目 录1. 课程设计简介11.1 课程设计的目的11.2 课程设计涉及技术的介绍11.2.1 JavaEE简介11.2.2 Javaee三大框架(SSH)11.2.3 oracle简介22. 课程设计题目描述和要求22.1课题描述22.1要求23. 设计环境24. 需求分析34.1 系统环境图34.2 系统功能图35. 数据库设计45.1数据库E-R图45.2数据库表结构56. 详细设计66.1 开发流程66.2 系统数据访问层(DAO层)86.2.1数据访问层介绍86.2.2数据访问层设计86.3 Model层的设计与实现156.3.1账单实体类156.3.2供应商实体类176.4 过滤器的设计226.4.1 过滤器代码226.4.2 登陆过滤器代码226.5 控制层(Servlet,Service)246.5.1Servlet 层/类的实现246.5.2Service层/类的实现326.6 系统视图层(该部分采用JSP实现)376.6.1 JSP介绍376.6.2视图层设计377.系统的部署与实现527.1使用Tomcat进行部署527.2 系统实现528. 心得体会599. 参考文献601. 课程设计简介1.1 课程设计的目的加深对JAVA EE技术中相关概念及原理的理解;熟悉JAVA EE主要框架的结构,掌握JAVA EE主要框架结果的应用,掌握JAVA体系下企业级开发的过程、方法和技巧。1. 通过本课程设计的实践及其前后的准备与总结,复习、领会、巩固和运用软件开发技术课堂上所学的软件开发方法和知识。 2. 为学生适应毕业后团队合作开发规模稍大项目和综合应用本专业所学习的多门课程知识创造实践机会。为学生提供主动学习、积极探索与大胆创新的机会。3. 使学生通过参加小组团队的开发实践,了解项目管理、团队合作、文档编写、口头与书面表达的重要性。4使每个学生了解软件工具与环境对于项目开发的重要性,并且重点深入掌握好一、两种较新或较流行的软件工具或计算机应用技术。5. 通过“稍大的”富有挑战性的软件实验项目开发实践,为学生提供主动学习、深入实践的机会,并且通过课程设计实践中,提高学生的自学能力、书面与口头表达能力、创造能力和与团队其他成员交往和协作开发软件的能力,提高学生今后参与开发稍大规模实际软件项目和探索未知领域的能力和自信心。1.2 课程设计涉及技术的介绍1.2.1 JavaEE简介JavaEE 是 J2EE的一个新的名称,之所以改名,目的还是让大家清楚J2EE只是Java企业应用.随着WEB和EJB容器概念诞生,使得软件应用业开始担心SUN的伙伴们是否还在Java平台上不断推出翻新的标准框架,致使软件应用业的业务核心组件架构无所适从,从一直以来是否需要EJB的讨论声中说明了这种彷徨。在2004年底中国软件技术大会Ioc微容器(也就是Jdon框架的实现原理)演讲中指出:我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本.此次J2EE改名为Java EE,实际也反映出业界这种共同心声。JavaEE的核心是EJB3.0, 其提供了更兼便捷的企业级的应用框架。1.2.2 Javaee三大框架(SSH)SSH 在J2EE项目中表示了3种框架,即 Spring + Struts +Hibernate。 Struts对Model,View和Controller都提供了对应的组件。Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,可以应用在任何使用JDBC的场合,可以在Servlet/JSP的Web应用中使用,也可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。1.2.3 oracle简介Oracle是最早商品化的的关系型数据库管理系统,它是世界上最大的数据库专业厂商甲骨文(Oracle)公司的核心产品,也是当前应用最广泛的、功能最强大的、具有面向对象特点、采用了客户机、服务器架构的数据库系统。2. 课程设计题目描述和要求2.1课题描述超市账单管理系统主要用于对超市的交易账单进行管理,如账单录入、账单修改、账单删除,以及和超市商品相关的供应商、用户的管理等。所谓账单,就是超市与供应商进行交易的凭据。超市采购部的职员、超市的部门经理是该系统的目标用户。2.1要求1.使用jsp、servlet、jstl、html、jdk特性(如抽象类或者接口)功能实现该系统。2.使用oracle数据库。3. b/s结构完成系统。3. 设计环境硬件环境CPU:P4 1.8GHz内存:512MB以上软件环境操作系统:Windows XP/7数据库:oracle 10 g开发工具:My eclipse 开发语言:Java,XML服务器:Tomcat4. 需求分析4.1 系统环境图图4.1超市账单管理系统环境图4.2 系统功能图图4.2超市账单管理系统功能图项目功能说明 :5. 数据库设计5.1数据库E-R图图5.1全局E-R图5.2数据库表结构表 5-1供货商信息表表名Supplier列名数据类型(精度范围)主/外码空/非空备注SupplierIdInt主码非空供应商编号SupplierNameVarchar(50)非空供应商名SupplierDescriptionVarchar(20)供应商描述Telephonelong非空电话号码AddressVarchar(50)地址ContactVarchar(20)联系人表 5-1账单信息表表名Bill列名数据类型(精度范围)主/外码空/非空备注billIdInt主码非空账单号SupplierIdVarChar(50)外码非空供应商编号goodsNameVarchar(50)非空商品名goodsNumberVarchar(20)非空商品数量goodsPicImage商品图片supplierNameVarchar(50)外码非空供应商名goodsDescriptionVarchar(20)商品描述paymentLong非空价格表5-2用户信息表表名User列名数据类型(精度范围)主/外码空/非空备注userIdInt主码非空用户编号userNamevarChar(50)主码非空用户名userPasswordvarchar(50)非空用户密码sexBoolean性别ageInt年龄telephonevarchar(50)电话号码addressvarchar(20)地址powerInt权限6. 详细设计6.1 开发流程(1) 在eclipse建立 web项目 如图6.1图6.1建立Dao层,model层,service层,servlet层,filter过滤器。导入jar包。(2) 创建数据库连接类:包括数据库连接方法、通用增删查改方法,如图6.2图6.2(3) 创建模型层bean类:bill.java;supplier.java;user.java.属性对应个个数据库中的值,并生成get(),set()方法如图6.3。图6.3(4) 创建数据库访问实体类以及相应的接口,如图6.4:图6.4Demo为接口;impl为实体类。通过传入参数调用数据库连接类的公共方法对数据库进行操作。(5) 创建业务逻辑层,如图6.5:图6.5BillService为接口在这一层中调用数据库访问实体类的方法,可以在次层中处理更复杂的业务逻辑。由于系统比较简单,就只是调用了方法。(6) 创建servlet类:构建doget dopost 方法 通过 HttpServlet传输数据 调用业务逻辑层的方法然后再向页面传值如图6.6-6.7图6.6图6.7(7) 配置web.xml文件:配置首页、过滤器、servlet(8) 表现层:JSP页面,使用POST向servlet传值,使用EL表达式获取值6.2 系统数据访问层(DAO层)6.2.1数据访问层介绍数据访问层又称为DAO层,有时候也称为是持久层,其功能主要是负责数据库的访问。简单的说法就是实现对数据表的Select(查询),Insert(插入),Update(更新),Delete(删除)等操作。如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。6.2.2数据访问层设计(1) 数据库连接类:package dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class DateDao private static final String driver = "oracle.jdbc.driver.OracleDriver"private static final String url = "jdbc:oracle:thin:localhost:1521:ERPDB"private static final String username = "lg"private static final String password = "boy521"/* * 连接数据库 * return */public Connection openConnection()Connection con = null;try Class.forName(driver);con = DriverManager.getConnection(url, username, password); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace();return con;/* * 关闭数据库资源 * param con * param ps * param rs */public void shutdown(Connection con, PreparedStatement ps, ResultSet rs)try if(rs != null)rs.close();if(ps != null)ps.close();if(con != null)con.close(); catch (SQLException e) e.printStackTrace();/* * 通用的查询方法 * param sql * param params * return */public ResultSet daoSelect(String sql, String params)Connection con = this.openConnection();PreparedStatement ps = null;ResultSet rs = null;try ps = con.prepareStatement(sql);if(params != null)for (int i = 0; i < params.length; i+) ps.setString(i+1, paramsi);rs = ps.executeQuery(); catch (SQLException e) e.printStackTrace();return rs;/* * 通用的增删改方法 * param sql * param params * return */public int daoUpdate(String sql, String params)int num = 0;Connection con = this.openConnection();PreparedStatement ps = null;try ps = con.prepareStatement(sql);if(params != null)for (int i = 0; i < params.length; i+) ps.setString(i+1, paramsi);num = ps.executeUpdate(); catch (SQLException e) e.printStackTrace();finallyshutdown(con, ps, null);return num;(2) 账单数据库访问接口package dao.bill;import java.util.List;import model.Bill;public interface BillDaoDemo public int addBill(Bill bill);public int delBill(String billId);public int updateBill(Bill bill);public List<Bill> findAll();public Bill findById(String billId);public List<Bill> findById(String billname, int payment);(3) 账单数据库访问实体类package dao.bill;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import model.Bill;import dao.DateDao;public class BillDaoImpl extends DateDao implements BillDaoDemo Connection con = null;PreparedStatement ps = null;ResultSet rs = null;public int addBill(Bill bill) String sql = "insert into bill values(?,?,?,?,?,?,?)"String params = bill.getBillId(),bill.getGoodsName(),bill.getGoodsNumber()+"",bill.getGoodsPic()+"",bill.getSupplierId(),bill.getPayment()+"",bill.getGoodsDescription();return this.daoUpdate(sql, params);public int delBill(String billId) String sql = "delete from bill where billid = ?"String params = billId+""return this.daoUpdate(sql, params);public int updateBill(Bill bill) String sql = "update bill set goodsName= ?, goodsNumber= ?, goodsPic= ?, supplierId= ?, payment= ?, goodsDescription= ? where billId = ?"String params = bill.getGoodsName(),bill.getGoodsNumber()+"",bill.getGoodsPic()+"",bill.getSupplierId(),bill.getPayment()+"",bill.getGoodsDescription(),bill.getBillId();return this.daoUpdate(sql, params);public List<Bill> findAll() String sql = "select b.*,s.suppliername from BILL b,SUPPLIER s where b.supplierid=s.supplierid"rs = this.daoSelect(sql, null);List<Bill> list = new ArrayList<Bill>();try while(rs.next()Bill bill = new Bill();bill.setBillId(rs.getString("billId");bill.setGoodsName(rs.getString("goodsName");bill.setGoodsNumber(rs.getInt("goodsNumber");bill.setGoodsPic(rs.getInt("goodsPic");bill.setSupplierId(rs.getString("supplierId");bill.setPayment(rs.getInt("payment");bill.setGoodsDescription(rs.getString("goodsDescription");bill.setSupplierName(rs.getString("supplierName");list.add(bill); catch (SQLException e) e.printStackTrace();finallyshutdown(con, ps, rs);return list;public Bill findById(String billId) String sql = "select b.*,s.suppliername from BILL b,SUPPLIER s where goodsname = ? and b.supplierid=s.supplierid"String params = billId+""rs = this.daoSelect(sql, params);Bill bill = null;try if(rs.next()bill = new Bill();bill.setBillId(rs.getString("billId");bill.setGoodsName(rs.getString("goodsName");bill.setGoodsNumber(rs.getInt("goodsNumber");bill.setGoodsPic(rs.getInt("goodsPic");bill.setSupplierId(rs.getString("supplierId");bill.setPayment(rs.getInt("payment");bill.setGoodsDescription(rs.getString("goodsDescription");bill.setSupplierName(rs.getString("supplierName"); catch (SQLException e) e.printStackTrace();finallyshutdown(con, ps, rs);return bill;public List<Bill> findById(String billname, int payment) String sql = "select b.*,s.suppliername from BILL b,SUPPLIER s where goodsname like ? and payment = ? and b.supplierid=s.supplierid"String params = billname,payment+""rs = this.daoSelect(sql, params);List<Bill> list = new ArrayList<Bill>();try while(rs.next()Bill bill = new Bill();bill.setBillId(rs.getString("billId");bill.setGoodsName(rs.getString("goodsName");bill.setGoodsNumber(rs.getInt("goodsNumber");bill.setGoodsPic(rs.getInt("goodsPic");bill.setSupplierId(rs.getString("supplierId");bill.setPayment(rs.getInt("payment");bill.setGoodsDescription(rs.getString("goodsDescription");bill.setSupplierName(rs.getString("supplierName");list.add(bill); catch (SQLException e) e.printStackTrace();finallyshutdown(con, ps, rs);return list;(4) 设计用户与供应商Dao层,步骤方法同账单Dao层6.3 Model层的设计与实现6.3.1账单实体类package model;import java.io.Serializable;public class Bill implements Serializableprivate static final long serialVersionUID = -898146295678376017L;private String billId;private String goodsName;private int goodsNumber;private int goodsPic;private String supplierId;private String supplierName;private String goodsDescription;private int payment;public Bill()public Bill(String billId, String goodsName, int goodsNumber, int goodsPic,String supplierId, String supplierName, String goodsDescription,int payment) super();this.billId = billId;this.goodsName = goodsName;this.goodsNumber = goodsNumber;this.goodsPic = goodsPic;this.supplierId = supplierId;this.supplierName = supplierName;this.goodsDescription = goodsDescription;this.payment = payment;public String getBillId() return billId;public void setBillId(String billId) this.billId = billId;public String getGoodsName() return goodsName;public void setGoodsName(String goodsName) this.goodsName = goodsName;public int getGoodsNumber() return goodsNumber;public void setGoodsNumber(int goodsNumber) this.goodsNumber = goodsNumber;public int getGoodsPic() return goodsPic;public void setGoodsPic(int goodsPic) this.goodsPic = goodsPic;public String getSupplierId() return supplierId;public void setSupplierId(String supplierId) this.supplierId = supplierId;public String getSupplierName() return supplierName;public void setSupplierName(String supplierName) this.supplierName = supplierName;public String getGoodsDescription() return goodsDescription;public void setGoodsDescription(String goodsDescription) this.goodsDescription = goodsDescription;public int getPayment() return payment;public void setPayment(int payment) this.payment = payment;6.3.2供应商实体类package model;import java.io.Serializable;public class Supplier implements Serializable private static final long serialVersionUID = 6090693257675317652L;private String supplierId;private String supplierName;private String supplierDescription;private String telephone;private String addres;private String contact;public Supplier()public String getSupplierId() return supplierId;public void setSupplierId(String supplierId) this.supplierId = supplierId;public String getSupplierName() return supplierName;public void setSupplierName(String supplierName) this.supplierName = supplierName;public String getSupplierDescription() return supplierDescription;public void setSupplierDescription(String supplierDescription) this.supplierDescription = supplierDescription;public String getTelephone() return telephone;public void setTelephone(String telephone) this.telephone = telephone;public String getAddres() return addres;public void setAddres(String addres) this.addres = addres;public String getContact() return contact;public void setContact(String contact) this.contact = contact;public Supplier(String supplierId, String supplierName,String supplierDescription, String telephone, String addres,String contact) super();this.supplierId = supplierId;this.supplierName = supplierName;this.supplierDescription = supplierDescription;this.telephone = telephone;this.addres = addres;this.contact = contact;6.3.3用户实体类package model;import java.io.Serializable;public class User implements Serializable private static final long serialVersionUID = -7375842930033306561L;private String userId;private String userName;private String userPassword;private int sex;private int age;private String telephone;private String address;private String power;public User()public User(String userId, String userName, String userPassword, int sex,int age, String telephone, String address, String power) super();this.userId = userId;this.userName = userName;this.userPassword = userPassword;this.sex = sex;this.age = a

    注意事项

    本文(课程设计JavaEEJSP_超市账单管理系统说明书.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开