威客网的设计实现分析

上传人:无*** 文档编号:89262586 上传时间:2022-05-12 格式:DOC 页数:37 大小:442KB
收藏 版权申诉 举报 下载
威客网的设计实现分析_第1页
第1页 / 共37页
威客网的设计实现分析_第2页
第2页 / 共37页
威客网的设计实现分析_第3页
第3页 / 共37页
资源描述:

《威客网的设计实现分析》由会员分享,可在线阅读,更多相关《威客网的设计实现分析(37页珍藏版)》请在装配图网上搜索。

1、-计算机科学与技术学院毕业设计(论文)论文题目威客网的设计与实现 指导教师职 称副教授学生学 号专 业班 级系 主 任院 长起止时间2013年10月11日至2014年5月23日2014年5月23日目 录摘要iAbstractii第一章 绪论11.1选题的背景11.2选题的研究意义2第二章 关键技术介绍11.1 Java语言11.2 Mysql11.4 Spring2第三章 系统分析42.1 需求分析42.2可行性分析4技术可行性42.2.2经济可行性52.2.3操作可行性52.3 系统开发与运行环境分析5第四章 系统设计64.1 系统设计原则64.2 功能模块的划分64.3 威客网的任务发布流

2、程84.4 威客网的稿件提交流程84.5 数据库设计94.5.1系统E-R图94.5.2 数据库逻辑构造设计10第五章 系统实现135.1 Spring与Hibernate的整合135.2 Struts2、Spring与Hibernate的整合145.3 系统前台主要功能模块设计与实现145.3.1 任务实体类定义145.3.2 稿件实体类定义175.3.3 持久化操作默认实现类195.3.4 威客主界面设计与实现225.3.5 威客网用户注册设计与实现225.3.6 威客用户登陆设计与实现235.3.7威客发布任务设计与实现245.3.8 威客任务大厅设计与实现255.3.9 威客用户提交稿

3、件设计与实现265.3.10任务详细信息页面设计与实现275.3.11 我的威客界面设计与实现285.3.12威客网名人殿堂设计与实现285.3.13 威客网帮助中心设计与实现295.4 系统后台主要功能模块设计与实现315.4.1后台管理任务类别模块设计与实现315.4.2 后台管理所有任务模块设计与实现315.4.3 后台管理所有用户模块设计与实现315.4.4后台管理系统公告模块设计与实现325.4.5 后台管理帮助中心模块设计与实现33第六章 系统测试346.1系统测试原则346.2系统测试用例346.2.1用户注册测试346.2.2用户登录测试346.2.3任务发布测试366.2.4

4、稿件提交测试376.2.5其他测试38总结与展望39参考文献40 辞42. z.-威客网的设计与实现摘要:威客是指在网络时代凭借自己的能力智慧和创意,在互联网上出售自己的富裕工作时间和劳动成果而获得报酬的人;而威客类的出现,为有知识生产加工能力的个人创造了一个销售知识产品的商业平台和时机。此系统的设计正是为有需求或者有能力的的用户提供一个实用的网络效劳平台,系统采用了B/S的模式,使用java语言技术,并结合了struts2、Spring、Hibernate框架技术,完成了一个根本满足用户需求的威客系统,并且系统具有一定的稳定性、平安性和拓展性。关键词:威客网;Java;Struts2;Spr

5、ing;Hibernate. z.-Design and realization of Witkey netAbstract: Witkey is refers in the network era by virtue of their ability (intelligence and creativity), to sell their rich working time and labor and get paid on the Internet; The emergence of Witkey website created a marketing knowledge products

6、 business platform and opportunity for the ability of knowledge production and processing of individual. Design of this system is for users with demand or have the ability to provide a practical network service platform, the system adopts B/S mode, use Java language technology, bined with the struts

7、 2 framework, Spring, Hibernate, pleted a basic meet user requirements of system, and the system has certain stability, security and e*pansibility.Keywords: witkey net; Java; Struts2; Spring; Hibernate. z.-第一章 绪论随着互联网技术的不断变革,电子商务已经得到的广泛的推广和极大的开展,相信在未来的一段时间里,会日趋成熟。不出家门,人们可以通过互联网买到全世界各的的商品,商人可以通过互联网电子

8、商务的模式在网上进展商品营销和推广,增加商品的曝光率和品牌知名对的提升。同时,作为商家和生产厂家,可以以互联网为平台将产品推广出去,扩大销量,提升品牌知名度。使得人们的生活更加方便,更加有效率。但是商品指的并不仅仅市实体的产品,随着电子商务的日渐成熟,无形的商品也登上了舞台。而威客这种新型电子商务模式的提出和开展,使得传统电子商务模式中常被忽略的知识产权这种无形商品成为了与普通商品一样可交易的产品。这种商业模式使得电子商业跨上了一个智慧交易的崭新台阶,使得更多的知识分子能够将自己的知识、技术、创意等等无形资产通过网络转化成有形的资产。1.1选题的背景威客网的出现是市场作用的表达,随着一种新型的

9、商品交换模式,威客随着互联网的开展而开展。从本世纪初,互联网开场加速开展,各种创新型应用和互联网新概念不断出现,搜索引擎、电子商务、博客、维基百科、RSS、3G、web2.0、长尾理论等。这些应用和概念与知识管理都有着或多或少的关系。随着物联网支付的诞生,信息免费的时代就已经过去了。信息已经成为了一种有价值的商品,极大的增加了知识的创新和开展。利用这些理论成果对知识产权进展合理的管理。威客模式就在这种情况下诞生了,它是一种利用互联网进展知识管理的网络创新模式。最初的威客网简单来说就是一个平台,通过一种悬赏的模式,将任务发布出去,寻找适宜的人完成,一局部由工程完成者获得,一局部由该平台获得。但是

10、随着时代的开展,威客网的模式也呈现多元化,有创意产品威客模式、劳务效劳威客模式、定向威客效劳模式和一对一直接雇佣模式、综合性威客效劳模式。他们自身的定位不同,提供不同的模式的效劳体系。现今主要的一些威客网友:一品威客网、西游记威客网、威客管家、云创意威客网等。威客网的最初的形式是 Witkey和威客这两个词完全为中国首创。该概念最先由锋在中国科学院研究生院提出。2005年,锋开场建立威客网witkey 试图将中国科学院的专家资源,科技成果与企业的科技难题对接起来。在建立的过程中,锋发现通过互联网解决问题并让解决者获取报酬是互联网一个全新的领域,于是他开场通过边实践边总结的方式对这个领域进展探讨

11、和研究,并因此提出威客理论。1.2选题的研究意义传统的电子商务模式有淘宝,阿里巴巴,环球市场等,它们主要是将商品限定为有形商品在网络中进展交易,或者是充值卡之类的半有形商品,却很难对知识,创意的无形商品交易。然而,在日常生活中,经常会有一些自己难以解决的问题,需要别人帮助解决,然而由于问题的复杂程度,无法找到免费的帮助。传统情况下,只能够寻找专门的运营机构例如点子公司、设计公司、文档处理公司等等,这会造成大量的时间和资源的浪费,并且会降低工作效率。举一个简单的例子,假设一图片,你需要进展处理,如果你拿到专门的公司里去设计,不仅收费贵,而且麻烦,但是在威客网上,只要发布任务,就有人自动找上来,而

12、且价格有你来定。在威客模式下,用户被分为两种类别,一种是任务的发布者,一种是威客:它们在威客模式中,扮演着不同的角色和功能。任务的发布者,在网上发布一些自己无法解决的问题,根据问题的难易程度,提供相应的金额的赏金,一般来说,提供的赏金越高,越容易威客攻破。网络的广泛性和赏金的吸引力会使得数量可观的威客来为发布任务者提供不同的问题解决方案,这样,发布者可以用等同或低于传统渠道的金额换取大量不同的解决方案,并从中选取自己最满意的解决方案。这样极大的提高了工作效率,节省了大量的金钱和时间,并且由于网络的特性,使得发布者可以更加方便的在家中解决大量问题。作为威客,可以在网络上寻找自己最擅长的任务,将自

13、己的知识、技术、创意等无形资产方便的转换成金钱,相比传统的方式进入专门提供解决方案的公司工作,威客方式更加灵活,更加自由,也更加方便快捷。同时,威客可以作为一种兼职工作,将生活中闲置的时间充分地利用起来,给自己带来更多的财富。. z.-第二章 关键技术介绍1.1 Java语言Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司Java程序设计语言和Java平台即JavaSE, JavaEE, JavaME的总称。Java 技术具有卓越的通用性、高效性、平台移植性和平安性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动和互联网,同

14、时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。1.2 MysqlMySQL是一个精巧的SQL数据库管理系统,虽然它不是开放源代码的产品,但在*些情况下你可以自由使用。由于它的强大功能、灵活性、丰富的应用编程接口(API)以及精巧的系统构造,受到了广阔自由软件爱好者甚至是商业软件用户的青睐,特别是与Apache和PHP/PERL结合,为建立基于数据库的动态提供了强大动力。MySQL是一个真正的多用户、多线程SQL数据库效劳器。SQL(构造化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/效劳器构造的实现,它由一

15、个效劳器守护程序mysqld和很多不同的客户程序和库组成。1.3 Struts2Struts2看似是从Struts1开展而来,但实际上Struts2与Struts1在框架的设计思想上面还是有很大的区别,Struts2是以WebWork的设计思想为核心,为什么Struts2不沿用Struts1的设计思想,毕竟Struts1在目前的企业应用中还是有非常大的市场在的,则,来看下Struts1的一些缺点吧:1支持的表现层技术单一2与Servlet API严重耦合,这点可以从Action的E*ecute的方法声明里面就可以看的出来3代码依赖Struts1 API,有侵入性,这点可以从写Action类和F

16、ormBean的时候看的出来,Action必须实现Struts的Action类而Struts2之所以以WebWork的设计思想为其核心,一点就是最近WebWork的上升势头,再就是WebWork没有Struts1上面的那些缺点,更符合MVC的设计思想,也更利于代码的复用。基于以上介绍可以看的出,Struts2体系构造与Struts1的体系构造有很大的差异,Struts1是使用ActionServlet做为其中心处理器,Struts2则使用一个拦截器FilterDispatcher做为其中心处理器,这样做的一个好处就是将Action类和Servlet API进展了别离。Struts2的简单处理流

17、程如下:1浏览器发送请求2中心处理器根据struts.*ml文件查找对应的处理请求的Action类3WebWork的拦截器链自动对请求应用通用功能,例如:WorkFlow、Validation等功能4如果Struts.*ml文件中配置Method参数,则调用Method参数对应的Action类中的Method方法,否则调用通用的E*ecute方法来处理用户请求5将Action类中的对应方法返回的结果响应给浏览器1.4 SpringSpring 是一个开源框架,是为了解决企业应用程序开发复杂性而创立的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序

18、开发提供集成的框架;Spring框架主要可以分为3个核心容:1、容器:核心容器提供 Spring 框架的根本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 IOC 模式将应用程序的配置和依赖性规与实际的应用程序代码分开。2、控制反转IoC ,Inversion of Control:不创立对象,但是描述创立它们的方式。在代码中不直接与对象和效劳连接,但在配置文件中描述哪一个组件需要哪一项效劳。容器 在 Spring 框架中是 IOC 容器 负责将这些联系在一起。3、面向切面编程AOP ,Aspect-Oriented Program

19、ming:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理效劳。通过使用 Spring AOP,不用依赖 E 组件,就可以将声明性事务管理集成到应用程序中。1.5 HibernateHibernate是一个基于Java的开源的持久化中间件,对JDBC做了轻量的封装。采用ORM映射机制,负责实现Java对象和关系数据库之间的映射,把sql语句传给数据库,并且把数据库返回的结果封装成对象。部封装了JD

20、BC访问数据库的操作,向上层应用提供了面向对象的数据库访问API. 优点:以对象的形式操作数据,提高开发效率,不用关心数据库种类换数据库只要修改配值文件。. z.-第三章 系统分析2.1 需求分析通过对威客网工作流程的研究和分析,要求本系统应该具有以下功能: 1、前台功能1实现会员注册、登陆系统的功能;2实现显示所有发布的任务并可以进展筛选等功能;3实现管理任搜索并筛选的功能; 4实现会员可以发布任务的功能; 5实现会员可以提交任务稿件的功能; 6实现管理自身发布的任务和稿件等功能;7实现查看最新任务和高额任务等功能;8实现对用户数据统计的功能;9实现显示并查看系统公告和中标的功能;10实现威

21、客帮助中心的功能。 2、后台功能1实现管理任务类别的功能;2实现管理任务的功能;3实现管理会员的功能;4实现管理系统公告的功能;5实现管理帮助中心的功能;2.2可行性分析技术可行性本系统采用Windows *P作为操作平台。基于java web技术,使用mysql数据库,充分表达了网页的动态管理与数据库的连接,对数据库的查询、修改及其删除。2.2.2经济可行性威客模式的英文是witkey,寓意于是通过个人的智慧,知识,专业专长在互联网上通过劳作转化为实际收入的模式,威客模式认为人的智慧,知识,经历可以通过互联网转化为商品,通过互动问答的方式,提供有效的信息,表达商品的价值。这种商品属于电子商务

22、中的信息商品的畴。2.2.3操作可行性 系统操作方式简单,易于理解,营运环境要求低,不管是发布者和威客只需 要通过简单的培训即可操作。2.3 系统开发与运行环境分析 效劳器端的工作环境要求如下: 操作系统:Windows *P或更高。本机是用Windows *P系统 数据库管理系统:MySQL数据管理系统,也可以采用其它数据系统。 Web效劳器:Tomcat。 客户机的工作环境要求如下: 网页浏览器:IE6及以上、360浏览器5.0以上以及其他浏览器. z.-第四章 系统设计4.1 系统设计原则 本系统的设计遵循以下设计原则: 1实用性:根据当代人的需求合理设计系统。 2可靠性:系统的软件设计

23、、数据库设计和界面形式等各方面要详细的考 虑,要做到可靠性,采用广泛使用的成熟技术和产品,将故障率降至最 低。 3易管理性:系统管理员可以及时方便的对系统进展管理,具备对威客网 进展更新调整的能力。 4平安性:为了保障系统平稳正常的运行,以及数据的完整性,整个系统 必须有很好的平安性。 5友好性:系统界面要友好,操作上要求简单方便,便于用户掌握。 6可扩展性:采用开放的标准和接口,以便于系统后续的开展和功能上的扩大4.2 功能模块的划分工程整体模块图如下列图4.1所示。威客系统后台后台管理登录所有任务类别管理管理所有任务管理所有的注册用户管理系统公告管理帮助中心前台用户登录注册查看任务详细发布

24、悬赏任务参与任务提交稿件管理我的任务与稿件查看公告与帮助图4.1 功能模块构造图1.用户注册登陆:是提供应没有威客的网民注册威客用户和登陆平台。2.查看任务详细:提供应用户查询任务详细容参与任务等功能的模块。3.发布悬赏任务:发布者即为用户在威客网上发布任务,填写任务具体的 容要求。4.参与任务提交:用户登陆后,可以进入任务大厅或者通过搜索筛选自己感兴趣的任务进展提交稿件方案。5.管理我的任务与稿件:提供应用户管理自己发布的任务与提交的稿件。6.查看公告于帮助:提供应用户查看系统和中标的公告和查看一些系统帮助。7.后台登陆:管理员通过密钥登陆后台所经过的一个窗口。8.所有任务类别管理:管理员登

25、陆后可以对任务的类别进展管理。9.管理所有任务:管理员登陆后可以对用户发布的任务进展管理。10.管理所有的注册用户:管理员登陆后对所有的注册用户进展管理。11.管理系统公告:管理员登陆后对系统的公告进展管理。12.管理帮助中心:管理员登陆后对帮助中心进展管理。4.3 威客网的任务发布流程1用户注册:不管是发布者还是威客都需要在威客主页上有一个用户名, 可以选择注册用户,注册一个新的威客会员,如果有则直接登 录。2用户登录威客:用户用所注册的威客登录威客系统。3填写任务需求:在主界面选择通过点击悬赏按钮发布悬赏任务,而后根 据表格的要求填写,其中包括任务标题,任务类别,完毕时间,悬赏金 额,任务

26、容等信息。4托管任务赏金:根据自己所填写的任务金额,汇款至威客。5发布任务:托管赏金后,管理员通过审核将发布者的需求信息直接将用 户的任务发布与威客首页,供应广阔网民查看和有意向的用户参与 竞标。威客任务发布流程如下列图4.2所示:用户登录威客填写任务需求发布成功托管任务赏金用户注册图4.2发布任务流程图4.4 威客网的稿件提交流程1. 注册威客:在威客主页选择注册用户,注册自己的威客会员,如果有 则直接登陆。登陆前方可竞标。2. 查看任务列表:登陆后,用户在任务大厅查看任务列表,看是否有自己感 兴趣的任务然后参与竞标。3 参加任务:点击自己想参加的任务竞标工程,在该任务页面点击我要交 稿。4

27、提交作品:根据表单容填写自己参加任务所要提供的任务作品。5发布人选择中标:在任务截止时间到期之前,任务发布人可以在众多稿 件当中选择自己最满意的任务作品并宣告竞标用户中标。6 发布赏金:管理员根据中标用户汇款项至中标用户。任务竞标流程图如下列图4.3所示:注册威客会员查看任务列表参加任务发布赏金选择中标提交作品图4.3接取任务流程图4.5 数据库设计4.5.1系统E-R图图4.4 系统E-R图1图4.5 系统E-R图2图4.6 系统E-R图34.5.2 数据库逻辑构造设计本系统的数据库管理系统采用MySQL,其数据库名为vike。(1) user图书表。具体数据表构造如表4.1所示。表4、1

28、user数据表构造字段名字段含义数据类型主键允许空id用户idint(11)userName用户名varchar(25)passWord密码varchar(25)e*perience经历值int(11)balance账户余额doubleemailvarchar(25)(2) assignment任务表。具体数据表构造如表4.2所示。表4.2 assignment数据表构造字段名字段名数据类型主键允许空id任务idint(11)categoryId所在类别idint(11)title任务标题varchar(25)detail详细描述longte*tfileName附件文件名varchar(255

29、)need需求个数int(11)续表4、2字段名字段名数据类型主键允许空pay赏金int(11)pubDate发布日期datetimeendDate截止日期datecontributionCount稿件个数int(11)currentNeed当前需求int(11)uid发布人idint(11)stauts任务状态int(11)(3) contribution稿件表。具体数据表构造如表4.3所示。表4.3 contribution数据表构造 字段名字段含义数据类型主键允许空id稿件idint(11)content稿件描述longte*tpicture稿件图片varchar(60)fileName

30、附件文件名varchar(255)hidden是否隐藏tinyint(1)pubDate发布日期datetimestatus稿件状态int(11)passDate审核时间datetimeassignmentId所在任务idint(11)uid发布人idint(11)(4) category任务类别表。具体数据表构造如表4.4所示。表4.4 category数据表构造字段名字段含义数据类型主键允许空categoryId 类别idint(11)categoryDescribe类别描述varchar(25)categoryName类别名称varchar(25)parentCategoryId父类别i

31、dint(11)(5) announcement系统公告表。具体数据表构造如表4.5所示。表4.5 announcement数据表构造字段名字段含义数据类型主键允许空id公告idint(11)title公告标题varchar(25)content公告容longte*tpubDate发布日期datetime(6) datetmp截止日期表。具体数据表构造如表4.6所示。表4.6 datetmp数据表构造字段名字段含义数据类型主键允许空id 表idint(11)endDate任务截止日期dateassignmentId任务idint(11)(7) problem帮助问题表。具体数据表构造如表4.7

32、所示。表4.7 problem数据表构造字段名字段含义数据类型主键允许空id表idint(11)question问题描述varchar(25)answer问题答案longte*thelpful帮助个数int(11)type问题所在栏目int(11)(8) manager管理员表。具体数据表构造如表4.8所示。表4-8 manager数据表构造字段名字段含义数据类型主键允许空id管理员idint(11)name管理员名称varchar(25)passWord管理员密码varchar(25)grade管理员权限int(11). z.-第五章 系统实现5.1 Spring与Hibernate的整合本

33、系统使用的Spring版本为4.0.0,Hibernate版本为4.2.0。在Spring与Hibernate的整合中,主要把Hibernate的SessionFactory和事务管理交由Spring管理。所以,在spring4-config.*ml文件中的配置如下: .vike.model.User .vike.model.Manager .vike.model.Category .vike.model.Assignment .vike.model.Contribution .vike.model.DateTmp .vike.model.Announcement .vike.model.Pr

34、oblem hibernate.show_sql=true hibernate.format_sql=true hibernate.hbm2ddl.auto=select hibernate.connection.automit=true 此外,需要在Web容器本系统使用Tomcat效劳器启动的时候加载Spring。所以,还需要在web.*ml中进展如下配置:conte*tConfigLocationclasspath:spring-config.*ml5.2 Struts2、Spring与Hibernate的整合本系统使用的Struts2的版本为2.3.4.1。Struts2与Spring整

35、合,主要是把Struts2中的objectFactory指定为Spring,由Spring容器来管理Action的生命周期。把struts2-spring-plugin-2.3.4.1.jar导入lib目录即可。此外,需要在web.*ml中配置Struts2的过滤器,配置如下所示:struts2org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndE*ecuteFilterstruts2/*5.3 系统前台主要功能模块设计与实现5.3.1 任务实体类定义Entitypublicclass Assignment privateint id

36、;privateint categoryId;private String title;private String detail;private String fileName;privateint pay;privateint need;private Date pubDate;private Date endDate;private User user;privateint status; / 0未托管,1托管,2完毕privateint currentNeed;privateint contributionCount;private Set contributions;public A

37、ssignment() contributions = new HashSet();IdGeneratedValuepublicint getId() return id;publicvoid setId(int id) this.id = id;publicint getCategoryId() return categoryId;publicvoid setCategoryId(int categoryId) this.categoryId = categoryId;public String getTitle() return title;publicvoid setTitle(Stri

38、ng title) this.title = title;public String getDetail() return detail;publicvoid setDetail(String detail) this.detail = detail;public String getFileName() return fileName;publicvoid setFileName(String fileName) this.fileName = fileName;publicint getPay() return pay;publicvoid setPay(int pay) this.pay

39、 = pay;publicint getNeed() return need;publicvoid setNeed(int need) this.need = need;public Date getPubDate() return pubDate;publicvoid setPubDate(Date pubDate) this.pubDate = pubDate;Temporal(TemporalType.DATE)public Date getEndDate() return endDate;publicvoid setEndDate(Date endDate) this.endDate

40、= endDate;ManyToOne(fetch = FetchType.EAGER)JoinColumn(name = uid)public User getUser() return user;publicvoid setUser(User user) this.user = user;publicint getStatus() return status;publicvoid setStatus(int status) this.status = status;OneToMany(mappedBy = assignment, fetch = FetchType.LAZY, cascad

41、e = CascadeType.ALL )public Set getContributions() return contributions;publicvoid setContributions(Set contributions) this.contributions = contributions;publicint getCurrentNeed() return currentNeed;publicvoid setCurrentNeed(int currentNeed) this.currentNeed = currentNeed;publicint getContributionC

42、ount() return contributionCount;publicvoid setContributionCount(int contributionCount) this.contributionCount = contributionCount;5.3.2 稿件实体类定义Entitypublicclass Contribution privateint id;private String content;private String picture;private String fileName;private Date pubDate;private Date passDate

43、;privateboolean hidden;privateint status; private Assignment assignment = new Assignment();private User user = new User();IdGeneratedValuepublicint getId() return id;publicvoid setId(int id) this.id = id;public String getContent() return content;publicvoid setContent(String content) this.content = c

44、ontent;public String getPicture() return picture;publicvoid setPicture(String picture) this.picture = picture;public String getFileName() return fileName;publicvoid setFileName(String fileName) this.fileName = fileName;public Date getPubDate() return pubDate;publicvoid setPubDate(Date pubDate) this.

45、pubDate = pubDate;public Date getPassDate() return passDate;publicvoid setPassDate(Date passDate) this.passDate = passDate;publicboolean isHidden() return hidden;publicvoid setHidden(boolean hidden) this.hidden = hidden;publicint getStatus() return status;publicvoid setStatus(int status) this.status

46、 = status;ManyToOne(fetch = FetchType.EAGER)JoinColumn(name = assignmentId)public Assignment getAssignment() return assignment;publicvoid setAssignment(Assignment assignment) this.assignment = assignment;ManyToOne(fetch = FetchType.EAGER)JoinColumn(name = uid)public User getUser() return user;public

47、void setUser(User user) this.user = user;5.3.3 持久化操作默认实现类publicabstractclass DaoSupport implements BaseDaoprotected Class entityClass = GenericsUtils.getGenericType(this.getClass();protected SessionFactory sessionFactory;public SessionFactory getSessionFactory() return sessionFactory; Resourcepublic

48、void setSessionFactory(SessionFactory sessionFactory) this.sessionFactory = sessionFactory;publicvoid delete(Serializable. ids) for (Serializable id : ids) T t = (T) sessionFactory.getCurrentSession().load(this.entityClass, id);sessionFactory.getCurrentSession().delete(t);public T get(Serializable e

49、ntityId) return (T) sessionFactory.getCurrentSession().get(this.entityClass, entityId);public T load(Serializable entityId) return (T) sessionFactory.getCurrentSession().load(this.entityClass, entityId);publicvoid save(Object obj) sessionFactory.getCurrentSession().save(obj);publicvoid saveOrUpdate(

50、Object obj) sessionFactory.getCurrentSession().saveOrUpdate(obj);publicvoid update(Object obj) sessionFactory.getCurrentSession().update(obj);public Object uniqueResult(String hql, Object queryParams) Query query = sessionFactory.getCurrentSession().createQuery(hql);setQueryParams(query, queryParams

51、); return query.uniqueResult();protectedvoid setQueryParams(Query query, Object queryParams)if(queryParams!=null & queryParams.length0)for(int i=0; iqueryParams.length; i+)if (queryParamsi instanceof List) query.setParameterList(list,(List)queryParamsi);else query.setParameter(i, queryParamsi);publi

52、c PageModel find(int pageNo, int ma*Result) return find(null, null, null, pageNo, ma*Result);public PageModel find(int pageNo, int ma*Result, String where,Object queryParams) return find(where, queryParams, null, pageNo, ma*Result);public PageModel find(int pageNo, int ma*Result,Map orderby) return

53、find(null, null, orderby, pageNo, ma*Result);public PageModel find(String where, Object queryParams,Map orderby, int pageNo, int ma*Result) final PageModel pageModel = new PageModel();String hql = newStringBuffer().append(select count(*) from ) .append(GenericsUtils.getGeneriame(entityClass) .append( ).append(where = null : where).toString();Query query = sessionFactory.getCurrentSession().createQuery(hql);

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!