基于S2SH的电子拍卖系统本科毕业设计.doc_第1页
基于S2SH的电子拍卖系统本科毕业设计.doc_第2页
基于S2SH的电子拍卖系统本科毕业设计.doc_第3页
基于S2SH的电子拍卖系统本科毕业设计.doc_第4页
基于S2SH的电子拍卖系统本科毕业设计.doc_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

编号 潍潍 坊坊 学学 院院 毕毕 业业 设设 计计 技技 术术 报报 告告 课题名称: 基于 s2sh 的电子拍卖系统 学生姓名: 于潇 学 号: 09021140401 专 业: 计算机科学与技术 班 级: 2009 级 4 班 指导教师: 曲秀清 2013 年 6 月 潍 坊 学 院 本 科 毕 业 设 计 摘 要 1 基于基于 s2sh 的电子拍卖系统的电子拍卖系统 摘要:电子拍卖系统是一个电子拍卖平台,主要为全球客户提供网上购物以及销 售商品功能,同时客户也可以对拍卖的商品进行竞拍。电子拍卖系统是一个基于商 品管理和用户竞拍管理的完善的后台系统,该系统是基于 s2sh 的电子商务系统, 系统共分为三个模块,即用户管理模块,商品管理模块,商品竞拍模块。其中用户 管理模块包括用户的登陆和注册功能并进行相应的登录验证;商品管理模块包括商 品的增、删、改、查以及按照不同种类的商品进行相应的管理;商品竞拍模块是对 客户发布的商品进行网商品卖,包括对用户参加竞价商品的统计以及流拍商品的统 计。随着科技进步网络技术迅速发展,网络在人们生活中越来越重要,电子拍卖系 统已经逐渐成为网络的常用功能系统,在人们生活中的重要性越来越明显。 关键词: s2sh 电子拍卖系统 web 潍 坊 学 院 本 科 毕 业 设 计 摘 要 2 the electronic auction system based on s2sh abstract: the electronic auction system is an electronic products auction platform, its mainly used for providing the customers online shopping and sales. at the same time, customers can also bid on auction items. electronic auction is a useful backstage system which based on commodity management, and user bidding management that buidt on s2sh ecommerce system. the system will be divided into three modules: the user management module, product management module and commodity auction module. user management module includes user login, registration functions and the corresponding login validation; the merchandise manages a mold piece include a merchandise of increase, delete, change, check and carry on a homologous management according to the merchandise of different category; commodity auctions module is an online auction, including some statistics of bidding goods and auction goods for the users. with the rapid development of science and technology, network in peoples daily life is becoming more and more important. the electronic auction system has gradually become the common functions of the net work system, and it is importance of peoples life which becomes more and more obvious. key words:s2sh;the electronic auction system;web 潍 坊 学 院 本 科 毕 业 设 计 1 目录目录 1 系统概述 1 1.1 开发背景及意义 1 1.2 系统功能简介 1 1.3 系统技术要求 1 2 系统需求分析 4 2.1 系统功能结构图 4 2.2 系统功能描述 4 3 系统设计 6 3.1 系统架构设计 6 3.2 相关技术介绍 6 3.3 系统功能设计 8 4 系统实现 .14 4.1 环境配置要求 .14 4.2 各功能层设计实现 .18 4.3 系统功能实现 .24 5 系统调试及运行.41 5.1 软件测试 .41 5.2 测试用例设计及结果分析 .41 5.3 测试结论存在的问题 .45 结束语.46 参考文献.47 致谢.48 潍 坊 学 院 本 科 毕 业 设 计 1 1 1 系统系统概述概述 1.11.1 开发背景及意义开发背景及意义 近几年来,随着科技的快速发展,电子商务快速发展,引发了网上购物的热潮, 促使人们开发出了购物系统。电子拍卖系统就是其中的一种购物系统,将该系统部署 在互联网上,各地的客户都可以在该系统上出售商品,也可对发布的商品进行竞拍, 整个过程都不需要人工操作,系统可以自行完成,非常方便快捷。 电子拍卖系统突破了事件和空间的限制,使得交易活动可以随时随地进行,从而 大大提高了效率;电子拍卖系统具有开放性和全球性特点,不论你身处何地,你都可 以登陆该系统进行竞拍,从而得到你想要的商品;电子拍卖系统重新定义了传统的流 通方式,去掉了中间繁琐的环节,使消费者和生产者可以进行直接的交易。 电子拍卖系统还可以提供与电子银行的接口,通过对电子银行操作实现买家到卖 家自动付款。付款成功后,系统将客户拍卖的物品发送的买家手中。由此可见,该拍 卖系统是一种开放式、成本低廉的购物系统。 1.21.2 系统功能简介系统功能简介 电子拍卖系统是一个是基于b/s模式的web系统,主要完成拍卖系统的各项功能, 使传统的拍卖过程,可以通过网络实现。 该系统包括前台服务功能和后台各种管理功能。要求注册用户首先登录,然后进 入本系统进行各项竞拍活动。 系统前台主要包括:竞拍商品分类;查看竞拍商品;参加竞拍;查看参与竞价的 物品;后台主要包括:用户管理;商品管理;查看流拍物品。 1.31.3 系统技术要求系统技术要求 .1 软件开发需求软件开发需求 本系统使用目前比较流行框架进行开发,界面设计采用jsp技术,控制层采用 struts2框架,采用hibernate方式的数据持久化策略,使用oracle数据库管理数据。 本系统采用三层结构,分为表示层、业务逻辑层、数据访问层。 表示层(jsp界面):负责收集用户输入的数据和显示数据; 控制层(action):负责将收集的数据传递给业务层; 业务逻辑层(service层):实现业务逻辑,对dao对象进行直接访问; 潍 坊 学 院 本 科 毕 业 设 计 2 数据访问层(dao层):封装了数据的增删改查功能,对数据库进行直接操作。 电子拍卖系统关系如图1.1所示。 用户界面,用户通过 web 浏览器访问 表示层 业务逻辑层(service 层) 数据库 jsp 收集数据 action 处理用户需求 数据层 层数据访问对象,与 对象交互 层,通过 与数据库中 表对应 图1.1 电子拍卖系统关系图 .2 硬件需求硬件需求 1应用服务器硬件需求 内存:2g以上; 潍 坊 学 院 本 科 毕 业 设 计 3 中央处理器:2.0ghz以上; 硬盘:100g可用空间; 其他:鼠标、键盘。 2客户端硬件需求 内存:2g以上 中央处理器:2g以上; 硬盘:100g以上; 其他:鼠标、键盘。 .3 软件需求软件需求 1服务器软件需求 数据库:oracle 操作系统:windows 7 开发语言:jdk 8; 开发工具:myeclipse 6.5; web服务器:tomcat 6.0; 防火墙:360 防火墙; 浏览器:ie9.0 。 潍 坊 学 院 本 科 毕 业 设 计 4 2 2 系统需求分析系统需求分析 电子拍卖系统是一个电子商务平台,客户由前台进行查询竞拍商品以及参与商品 竞拍操作,后台进行商品的管理。 2.12.1 系统功能结构图系统功能结构图 前台功能结构,如图2.1所示: 前台功能 竞拍商品分类查看竞拍商品参加竞拍查看参与竞价的物品 图 2.1 前台功能结构图 后台功能结构,如图2.2所示: 后台功能 用户管理商品管理查看流拍物品 图 2.2 后台功能结构图 2.22.2 系统功能描述系统功能描述 前台功能需求介绍 : 竞拍商品分类:用户可以查看物品种类,可以根据不同的种类查看不同的商品; 查询竞拍商品:用户可以自主查看感兴趣的商品的详细信息; 参加竞拍:用户可以对自己想要的商品出价进行竞拍吗,系统将竞拍信息存储到 数据库表中; 查看参与竞价的物品:用户可以浏览已经参与竞拍的物品; 后台功能需求介绍: 用户管理:包括用户的注册和登录两个功能,当用户登录系统时,如果用户未注 潍 坊 学 院 本 科 毕 业 设 计 5 册,则先点击登陆界面的注册按钮完成注册后在进行登录; 商品管理:包括添加拍卖商品的种类,添加拍卖商品,删除拍卖商品,修改拍卖 商品以及对拍卖商品的多种查询功能。 查看流拍物品:查看没有销售出去的物品。 潍 坊 学 院 本 科 毕 业 设 计 6 3 3 系统设计系统设计 3.13.1 系统架构设计系统架构设计 本电子拍卖系统采用java ee 的三层架构,即表示层、业务逻辑层、数据分析层。 这种体系将业务规划和数据访问工作放到中间层进行处理。客户端不直接与数据库交 互,而是通过控制器与中间层建立连接,然后再由中间层与数据库交互。 表示层是由jsp 完成的,jsp界面使用struts 2标签显示数据。 中间层则采用struts+spring+hibernate,为分离控制层和业务逻辑层,又可细分为: web层,负责表示层与业务逻辑层进行交互,通过调用业务逻辑层,将数据返回 给表示层来显示。 service层(业务逻辑层) ,实现业务逻辑对dao层进行封装。 dao层(数据访问层) ,与持久化对象进行交互,封装了数据的增删改查。 po层(持久化对象层) ,通过实体/关系映射工具将关系型数据库的数据映射成对 象,实现以面向对象方式操作的数据库。 通过使用struts 2 提供了良好的mvc模式,所有的用户请求都有struts 2的action负 责拦截,然后通过spring提供的自动装配功能,定位spring容器中的业务逻辑组件,调 用业务逻辑组件方法来处理用户。 数据服务层采用oracle数据库存放数据。 3.23.2 相关技术相关技术介绍介绍 .1 strutsstruts 2 2 技术技术 本系统中用户的所有请求都由sturts 2的filterdispatcher来过滤,将系统的所有请求 转入struts 2中,从而使所有请求通过struts 2 的action处理。 .2 hibernatehibernate 框架框架 作为o/r mapping框架使用,hibernate提供的o/r mapping功能简化了数据库访问, hibernate在jdbc层提供了很好的封装,以面向对象的方式操作数据库。 hibernate以优雅、灵活的方法操作数据库,无需程序开发者编写sql语句,执行 繁琐的多表查询,而是通过对象与对象之间的关联操作数据库,hibernate为底层的dao 对象的实现提供了支持。 潍 坊 学 院 本 科 毕 业 设 计 7 .3 springspring 框架框架 借助spring ioc容器的支持,容器中各组件以松散耦合方式组合在一起,组件与组 件的依赖通过spring依赖注入进行管理,系统中各组件之间面向接口编程,减少了系统 异构的代价。 dao对象的创建使用了spring的hibernatedaosupport作为基类,继承 hibernatedaosupport的dao对象实现更加简单,程序开发者无需管理hibernate的 sessionfactory、session等对象。程序开发者通过spring提供的hibernatetemplate完成数 据库操作。 本系统采用spring 、hibernate和 struts 2 的整合策略,struts 2于spring整合时, 使用了struts2提供的spring插件,这意味着struts 2 的action也由spring容器负责生成, 然后通过spring的自动装配策略,从而使struts 2的action定位spring容器的业务逻辑层 组件。 struts2、hibernate、spring整合策略如图3.1所示。 spring 容器 控制器 action dao 组件 业务逻辑组件 发送请求 自动装配定位 依赖注入 图 3.1 整合策略图 潍 坊 学 院 本 科 毕 业 设 计 8 3.33.3 系统功能设计系统功能设计 .1 系统各层设计系统各层设计 1系统主要界面 如图3.2所示是本系统所有的界面文件,login.jsp是登陆界面,register.jsp是用户注 册界面,kind.jsp是物品种类显示界面,addkind.jsp是物品种类添加界面,editkind.jsp是 物品种类修改界面,goods.jsp是物品显示界面,addgoods.jsp是物品添加界面, goodsname.jsp是查看物品竞拍界面,bids是竞价记录界面。 图 3.2 系统 jsp 页面 2系统包结构分析 图 3.3 系统包结构 潍 坊 学 院 本 科 毕 业 设 计 9 如图3.3 系统包结构所示:com.dh.pojos包包含持久化类和映射文件,封装持久化 数据;com.dh.util包中是自己定义的工具类;com.dh.dao包是数据访问层,对数据进行 持久化操作,封装数据的增加、删除、修改、查寻等功能;com.dh.service包是业务逻 辑层,对dao对象进行封装。com.dh.action包中的类对业务数据进行处理。 3主要包介绍 (1)com.dh.util为工具包,dateutil类是对日期格式的定义。 (2)com.dh.dao包为数据对象访问层,在dao中继承spring提供的 hibernatedaosupport在applicationcontext.xml配置文件中添加事务处理以及各实体类对 应bean的配置。userdao类封装了用户的增删改查以及根据用户名和密码进行查询的方 法;kinddao类封装了商品种类的增删改查操作;goodsdao类封装了竞价商品的增、删、 改、查功能;bidsdao类对竞价记录的封装。 (3)com.dh.service包中类的属性通过set注入方式,将com.dh.dao包中的类注入到对 应的service类中。在applicationcontext.xml配置文件中进行配置。 (4)com.dh.action包为业务逻辑层,该包中的类需要继承struts 2提供的 actionsupport在applicationcontext.xml配置文件配置各类对应的bean并且将 com.dh.service包中的对应的service类通过set方式注入到各个action类中,在struts.xml配 置文件中,对应action进行配置,class属性值对应applicationcontext.xml中action的 name。 .2 数据库设计数据库设计 1系统实体 本系统是一个拍卖系统,用户必须登录后才能实现该系统的所有功能,所以本系 统有一个实体:用户。同时本系统还包括一个物品实体,表示系统中正在拍卖的物品。 而对于拍卖的物品必须提供一个分类,对物品进行有效的分类管理,因此,本系统还 有一个物品种类实体。同时还需要一个管理物品状态的实体来表示该物品是否流拍。 另外,用户还可以对拍卖物品进行竞价,物品的竞价记录也会被保存,所以该系 统中还会有一个竞价记录实体。 综上所述,本系统有5个实体:用户,物品种类,物品,物品状态,竞价记录。 2系统数据表 本系统数据库采用oracle数据库,数据库名称为scott ,密码tiger。该系统包含六 张表。 3数据库数据表的定义与说明 潍 坊 学 院 本 科 毕 业 设 计 10 表 3-1 电子拍卖系统数据表一览 表名表名注释注释 users负责保存注册用户的信息 kind负责保存物品种类 state负责保存物品的状态 goods负责保存竞拍商品的详细信息 bids负责保存赢取的商品 表 3-2 users 表的定义说明 列名列名数据类型数据类型可否为空可否为空约束条件约束条件注释注释 useridnumber(10)n主键约束主键 userid usernamevarchar2(20)n用户名 userpasswordvarchar2(20)n密码 表 3-3 kind 表的定义说明 列名列名数据类型数据类型可否为空可否为空约束条件约束条件注释注释 kindidnumber(10)n主键约束主键 kindid kindnamevarchar2(20)n商品种类名称 kindtypevarchar2(20)n商品种类描述 表 3-4 state 表的定义说明 列名列名数据类型数据类型可否为空可否为空约束条件约束条件注释注释 stateidnumber(10)n主键约束主键 stateid statenamevarchar2(20)n 表 3-5 goods 表的定义说明 表名表名数据类型数据类型可否为空可否为空约束条件约束条件注释注释 idnumber(10)n主键约束主键 id kindidnumber(10)n外键约束物品所属种类 stateidnumber(10)n外键约束物品所属状态 goodsnamevarchar2(20)n物品名称 goodstypevarchar2(200)y物品描述 begintimedaten物品添加时间 endtimedaten物品结束时间 潍 坊 学 院 本 科 毕 业 设 计 11 beginpricevarchar2(20)n物品起拍价格 maxpricevarchar2(20)n物品最高价格 表 3-6 bids 表的定义说明 列名列名数据类型数据类型可否为空可否为空约束条件约束条件注释注释 bidsidnumber(10)n主键约束主键 bidsid useridnumber(10)n外键约束参与竞价的用户 goodsidnumber(10)n外键约束参与竞价的物品 bidspricevarchar2(20)n竞价的价格 bidsdatevarchar2(20)n竞价的日期 .3 系统各功能设计系统各功能设计 组件与业务逻辑层的依赖关系如图3.4所示: 潍 坊 学 院 本 科 毕 业 设 计 12 中间层 actionmanager userdao kinddao goodsdao bidsdao statedao user kind goods bids state 数据表 图 3.4 组件与业务逻辑层的依赖关系 1用户管理功能 用户管理功能分为用户注册和用户登录两个功能。当用户注册就是向系统中增加 一个用户,对应数据库表中增加一条记录。当用户系统输入注册信息时,本系统需要 提供验证判断用户输入是否合法,只有当用户输入满足基本输入要求时,才会提交到 实际的登陆系统,进行实际登陆处理。 用户登陆界面是login.jsp页面,如果用户未注册,则用户需要点击login.jsp见面上 的“注册”按钮转到register.jsp页面根据要求填写注册信息,当注册成功后就会转到登 陆页面,在登陆页面上填写用户名、密码后,点击“登陆”按钮进行登录,如果登陆 成功,则会跳转到主页面electronic.jsp页面,反之,登录失败跳转到登陆页面重新登录。 2物品种类管理 用户登录本系统后,可以对物品种类进行管理,该功能包含对于物品种类的增加、 删除、修改和查询功能。 用户添加物品种类时,用户需要点击kind.jsp页面上的“添加物品种类“跳转到 addkind.jsp页面填写物品种类信息,完成后点击“添加” ,添加成功后跳转到kind.jsp页 面显示出所有的物品种类;用户想修改物品种类信息时,点击“编辑”页面将跳转到 editkind.jsp界面,所需修改的物品种类信息显示在该页面上,修改完后,点击“修改” , 页面重新跳转到kind.jsp页面显示出所有的物品种类信息;当想要删除某一种类时,只 需点击“删除” ,kind.jsp页面进行一次刷新,显示删除后的所有物品种类信息。 3物品管理功能 当用户登陆该系统后,就可以根据自己的需求实现物品管理功能,该功能包含了 对拍卖物品的增、删、改、查功能。 当用户实现添加物品功能时,用户需要点击goods.jsp页面上的“添加物品“按钮, 跳转到addgoods.jsp界面进行填写需要填加的物品信息,填写完后点击“添加” ,添加成 功后跳转到goods.jsp页面显示出所有的物品信息,对应于数据库goods表就会增加一条 新的记录;当用户想删除物品时,用户只需点击该物品后的“删除“,goods.jsp页面 进行一次刷新,系统重新从数据库中读出信息显示在goods.jsp页面上,数据库goods表 中将相应减少一条记录;当用户需要修改拍卖物品的信息时,用户只需点击所需修改 物品后的“编辑” ,系统将跳转到editgoods.jsp页面,并将物品信息先是在该页面上, 该物品的id为只读模式,不能进行修改,将物品信息修改后,点击“修改 “,goods.jsp页面进行一次刷新,将修改后的数据库信息重新显示在该页面上,数据 库goods表中的该物品信息也相应得到修改。 潍 坊 学 院 本 科 毕 业 设 计 13 4参与用户竞价功能 用户希望竞拍物品时,点击进入goodsname.jsp页面,该页面用于查看物品信息, 当有自己觉得喜欢的商品时,点击物品信息后的“查看” ,进入goodslist.jsp页面查看商 品信息并进行竞价。对于参与竞价的商品可以在electronic.jsp页面点击“查看竞标物品” 进入bids.jsp页面查看已参与竞价的物品。 5流拍物品管理功能 对于自己拍卖的物品过期时就会产生流拍,对于流拍物品的管理包括流拍物品的 增、删、改、查功能。当用户想要查看流拍的物品时,点击界面上的“查看流拍物品” , 进入state.jsp页面查看所有流拍的物品,对于我们不想要的流拍物品,点击“删除“后, 将刷新state.jsp页面显示删除后的数据库信息。 潍 坊 学 院 本 科 毕 业 设 计 14 4 4 系统实现系统实现 4.14.1 环境配置要求环境配置要求 .1 strutsstruts 2 2 核心核心 filterfilter 的配置的配置 struts 2使用核心的filterdispatcher来过滤用户请求,当filterdispaatcher拦截到用 户请求后,用户请求将转入struts 2体系内,因此将在web.xml文件中配置 filterdispatcher过滤器,在web.xml文件中配置该过滤器的代码如下: struts org.apache.struts2.dispatcher.filterdispatcher struts /* 经过上面配置之后,就可以把用户请求转入struts 2 体系内,让struts 2 的核心 filterdispatcher来处理用户请求。 .2 applicationcontext.xmlapplicationcontext.xml 文件配置文件配置 s2sh框架中的bean注入、数据库源、hibernate集成管理都是通过配置 applicationcontext.xml文件完成的,系统中bean的数量较多时可以分多个配置文件编 写,文件名和存放路径可以指定。 org.hibernate.dialect.oracle9dialect 潍 坊 学 院 本 科 毕 业 设 计 15 true 潍 坊 学 院 本 科 毕 业 设 计 16 潍 坊 学 院 本 科 毕 业 设 计 17 applicationcontext.xml中配置了sessionfactory,其中各实体类的的映射文件从 hibernate.cfg.xml中导入;该文件中还进行了事物切面配置并定义了事物通知;并且 该文件分别对各实体类dao层、service层和action层进行配置。 .3 struts.xmlstruts.xml 配置文件配置文件 配置struts.xml文件,使struts框架能够相应的包含action的url请求并根据 action类中的方法返回的字符串跳转页面。 /login.jsp /electronic.jsp /goods.jsp /goodsname.jsp /goodslist.jsp /editgoods.jsp /kind.jsp /editkind.jsp /bids.jsp 潍 坊 学 院 本 科 毕 业 设 计 18 /state.jsp 上述配置文件中配置了名为users、kind、goods、bids、state五个action,其中 class属性值分别为 useraction、kindaction、goodsaction、bidsaction、stateactiom。此配置文件是 struts2 用于解析业务逻辑处理结果的依据。该配置文件用了标签中的重定 向类型,如:名为users的action中的/login.jsp 用于用户注册成功或者登录失败后重定向到登陆页面。 4.24.2 各功能层设计实现各功能层设计实现 .1 实现实现 hibernatehibernate popo hibernate po是由持久化类和映射文件两部分组成的。其中映射文件实现把持久 化类映射到数据表,并把持久化类的属性映射到数据列,通过映射允许程序以面向 对象的方式访问hibernate po,hibernate则把这种操作转换成底层的jdbc数据库访 问。对于hibernate po而言,一个持久化类被映射到一个数据表,一个持久化类的属 性对应一个数据列,因此,实体表中含有多少列,实体对应持久化类中包含多少属 性。 电子拍卖系统中的拍卖用户实体对应po类代码如下: public class user private int userid; private string username; private string userpassword; private set bids=new hashset(); private set items=new hashset(); /下面省略了user类的setter和getter方法 该类采用的set类型保存该实体一对多的实体关联关系,这符合hibernate的关联 映射策略。 user实体映射文件user.hbm.xml的主要代码: 潍 坊 学 院 本 科 毕 业 设 计 19 sq_users_id 该映射文件将user类映射到users数据表,并使用元素映射该实体对应的 关联实体。在上述关联映射中,存在一对多的关联映射,对于这种映射,一般都采 用双向的一对多关联映射。 本系统对于判断两次竞价记录是否为同一条记录方法是:比较两次竞价记录的 用户名、竞拍的商品以及竞拍的价格是否完全相同,若相同,则两次竞价记录相同, 反之,两次竞价记录不同。因此该竞价记录实体的代码如下所示: public class bids /标识属性 private int bidsid; /竞价的价格 private string bidsprice; /竞价的日期 private date bidsdate; /本次竞价所竞拍的物品 private goods bidsgoods; /参与竞价的用户 潍 坊 学 院 本 科 毕 业 设 计 20 private user bidsuser; /省略getter和setter方法 该bids实体对应的映射文件bids.hbm.xml代码如下: sq_bids_id 在该映射文件中包含了两个子元素,每一个都映射一个多对一 关联实体。lazy=“false“ 属性表明关联实体关闭映射加载。 系统中物品种类实体对应的po类代码如下: public class kind private int kindid; private string kindname; private string kindtype; private set goods=new hashset(); /省略getter和setter方法 物品种类对应的映射文件kind.hbm.xml代码如下: 潍 坊 学 院 本 科 毕 业 设 计 21 sq_kind_id 上述文件对应持久化类,映射到电子拍卖系统数据库中的kind表。 对于该拍卖系统,当用户添加商品时,如果该系统中已有一个与之同名的商品, 但我们不能断定该商品与原有商品是同一物品(用户可能有多个相同的物品需要拍 卖) 。下面为竞价物品对应的po类,该类代码如下: public class goods private int id; private int kindid; private string goodsname; private string goodstype; private date begintime; private date endtime; private string beginprice; private string maxprice; private kind kind; private set bids=new hashset(); private user owner; /省略getter和setter方法 该goods类对应的映射文件goods.hbm.xml代码如下: 潍 坊 学 院 本 科 毕 业 设 计 22 sq_goods_id 实现系统的hibernate po后,程序可以通过对po的添加、删除、修改等操作功 能,从而转化为对数据库记录的添加、删除、修改等操作功能。因此我们必须管理 hibernate 的sessionfactory实例来指定数据库连接信息。hibernate 通过 sessionfactory封装数据库连接。 .2 管理管理 sessionfactorysessionfactory hibernate映射文件完成持久化类和数据表之间的映射关系,但是无法准确操作 潍 坊 学 院 本 科 毕 业 设 计 23 数据库。sessionfactory完成数据库的定义,对数据库连接进行封装。因此 sessionfactory的管理部分是一个非常重要的部分,必须妥善处理。 本系统并不是直接在applicationcontext.xml中配置数据源。而是在 hibernate.cfg.xml文件中进行配置。然后进行sessionfactory的配置。 hibernate.cfg.xml配置数据源的代码如下: org.hibernate.dialect.oracledialect oracle.jdbc.driver.oracledriver jdbc:oracle:thin:localhost:1521:orcl scott tiger applicationcontext.xml中sessionfactory配置的代码如下: 潍 坊 学 院 本 科 毕 业 设 计 24 org.hibernate.dialect.oracle9dialect true 上述代码中 “” 将hibernate.cfg.xml文件中定义的数据源导入到sessionfactory bean 配置中。在 spring容器中配置了sessionfactory bean后,spring容器将会管理sessionfactory bean,并将将sessionfactory bean注入到其他dao组件中。 .3 系统系统 daodao 层的实现层的实现 java ee将系统的持久层访问都封装在系统dao层,对于持久化访问都通过dao层 组件实现,以避免业务逻辑层与持久化访问发生耦合。 采用dao模式下的dao组件用于完成对应实体的增、删、改、查操作,一般提 供以下几个方法: 保存实体:插入一条数据。 修改实体:修改一条数据。 根据主键查询实体:根据主键获取指定数据。 查询全部:显示所有数据。 根据主键删除实体:删除指定记录。 本系统包含五个实体,这五个实体分别对应系统的五个dao组件,每个dao组 件操作对应的每个实体。 4.34.3 系统功能实现系统功能实现 .1 用户管理用户管理 1用户登录 用户登录是本系统的基本功能,当用户需要使用本系统时,需先登录本系统然 潍 坊 学 院 本 科 毕 业 设 计 25 后才可使用其功能。该系统的登陆界面是login.jsp。主界面代码如: . 用户名 密码 注册 该页面定义了一个form表单用来收集用户名和密码,当用户提交请求时,请求 被发送给名为users的action ,调用该action的login()方法,若登陆成功,则转到 主界面electronic.jsp;否则返回login.jsp界面,重新登录。 对于在登陆页面中输入的用户名和密码不能为空的判断则在login.jsp页面中进行 处理,代码如下: function validatedata() var flag = true; var name = document.getelementbyid(“username“).value; var password = document.getelementbyid(“userpassword“).value; if (name = “) alert(“用户名不能为空“); return false; if (password = “) alert(“密码不能为空“); return false; 潍 坊 学 院 本 科 毕 业 设 计 26 用户登录action的处理类代码如下所示: public class useraction extends actionsupport private userservice userservice; / private int userid; private string username; private string userpassword; private string userrepwd; /省略gette和setter方法 public string login() user=userservice.findbynameandpwd(username, userpassword); if(user!=null) return “loginsuccess“; else return “usersuccess“; 从代码中可以看出,该action类继承了actionsupport。该类中的login()方法 用于判断数据库中有无此用户,如果返回的user不为空,则登陆成功,返回字符串 loginsuccess,根据struts.xml中的配置条转到electronic.jsp界面;登录失败返回字符串 usersuccess,根据struts.xml配置,返回登陆页面。 上述login()方法中调用了userserviece对象中的findbynameandpwd()方法, 该方法的代码如下: public class userservice private userdao userdao; /省略getter和setter方法 public user findbynameandpwd(string username,string userpwd) return userdao.findbynameandpwd(username, userpwd); userservice类中的findbynameandpwd()方法通过userdao对象调用 findbynameandpwd()方法对用户名和密码进行检索,该userdao对象中的 潍 坊 学 院 本 科 毕 业 设 计 27 findbynameandpwd()方法代码如下: public class userdao extends generichibernatedao public user findbynameandpwd(string username,string userpwd) string hql=“from user u where u.username=? and u.userpassword=?“; object params=username,userpwd; list list = super.findbyhql(hql, params); if(list.size()0) return list.get(0); else return null; userdao类继承了generichibernatedao类,通过string hql=“from user u where u.username=? and u.userpassword=?“进行数据库检索,若发现有符合的信息则返回 user对象,否则返回空。 2用户注册功能 当用户登录时,用户名可能没有注册,这就需要用户先注册然后再登陆。当用 户注册时,需要点击login.jsp界面上的“注册”按钮,跳转到注册界面register.jsp页 面,该页面代码如下: 用户注册 用户名: 密码: 确认密码: 潍 坊 学 院 本 科 毕 业 设 计 28 该页面定义了一个form表单用来收集用户名和密码,当用户提交请求时,请求 被发送给名为users的action ,调用该action的save()方法,若注册成功,则跳转到 login.jsp页面进行登录,否则重新注册。 该action处理代码如下 程序清单:electronicauctioncomdhactionuseraction.java public string save() user user = new user(username, userpassword); this.userservice.saveuser(user); return “usersuccess“; userservice对象中的saveuser()方法代码如下: 程序清单:electronicauctioncomdhactionuserservice.java public void saveuser(user user) this.userdao.saveuser(user); userdao对象中的saveuser()方法将注册的用户名密码存储到数据库中,其代 码如下: 程序清单:electronicauctioncomdhactionuserdao.java public void saveuser(user user) super.gethibernatetemplate().save(user); gethibernatetemplate():返回持久化操作hibernatetemplate实例的方法。 潍 坊 学 院 本 科 毕 业 设 计 29 .2 物品管理物品管理 用户登录系统后可以进行物品管理,物品管理功能包含竞拍物品的添加、删除、 修改和查询。下面对这四个功能进行一一分析。 1物品的查询 用户登陆后进入主界面electronic.jsp页面,electronic.jsp页面代码如下: 管理物品 管理种类 浏览拍卖物品 查看竞标物品 查看流拍的物品 点击“管理物品”调用名为goods的action中的findallgoods()方法,该方法代 码: public class goodsaction extends actionsupport private goods goods; private kind kind; private kindservice kindservice; private goodsservice goodsservice; /省略getter和setter方法 public string findallgoods() list lists=goodsservice.findall(); httpservletrequest request = servletactioncontext.getrequest(); request.setattribute(“lists“, lists); return “lists“; 该方法中通过调用goodsservice对象中的findall()方法返回一个list集合,将 该集合保存在request中。findallgoods()方法返回“listsname“字符串,然后根据 struts.xml配置跳转到goods.jsp 页面,goods.jsp页面关键代码如下: 添加物品 /省略getter和setter方法 public list findall() return this.goodsdao.findall(); goodsservice类中findall()方法通过注入的dao组件调用goodsdao类中的 findall()方法,该方法用于查找所有的物品,其代码: public class goodsdao extends hibernatedaosupport public list findall() return super.gethibernatetemplate().find(“from goods“); 该goodsdao类继承hibernatedaosuppo

温馨提示

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

评论

0/150

提交评论