威客网的设计实现分析_第1页
威客网的设计实现分析_第2页
威客网的设计实现分析_第3页
威客网的设计实现分析_第4页
威客网的设计实现分析_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、.word.zl.word.zl.计算机科学与技术学院毕业设计(论文)论文题目 威客网的设计与实现指导教师职称副教授学生学号专 业班级系主任院长起止时间2021年10月11日至2021年5月23日2021年5月23日摘要Abstractii第一章绪论1选题的背景1选题的研究意义2第二章关键技术介绍4Jav初言 4Mysq4Spring6第三章系统分析8需求分析8可行性分析9技术可行性9经济可行性9操作可行性9系统开发与运行环境分析9第四章系统设计10系统设计原那么10功能模块的划分10威客网的任务发布流程12威客网的稿件提交流程13数据库设计14系统 E-R 图 14数据库逻辑造设计 15第五

2、章系统实现18Spring Hibernate的整合 18Struts2 Spring与 Hibernate的整合 19系统前台主要功能模块设计与实现19任务实体类定义19 TOC o 1-5 h z HYPERLINK l bookmark75 o Current Document 稿件实体类定义22 HYPERLINK l bookmark77 o Current Document 持久化操作默认实现类24 HYPERLINK l bookmark79 o Current Document 威客主界面设计与实现27 HYPERLINK l bookmark81 o Current Docu

3、ment 威客网用户注册设计与实现27 HYPERLINK l bookmark83 o Current Document 威客用户登陆设计与实现28 HYPERLINK l bookmark85 o Current Document 威客发布任务设计与实现29 HYPERLINK l bookmark89 o Current Document 威客任务大厅设计与实现31 HYPERLINK l bookmark91 o Current Document 威客用户提交稿件设计与实现31 HYPERLINK l bookmark95 o Current Document 任务详细信息页面设计与实

4、现32 HYPERLINK l bookmark101 o Current Document 我的威客界面设计与实现33 HYPERLINK l bookmark103 o Current Document 威客网名人殿堂设计与实现33 HYPERLINK l bookmark105 o Current Document 威客网帮助中心设计与实现34系统后台主要功能模块设计与实现36 HYPERLINK l bookmark109 o Current Document 后台管理任务类别模块设计与实现36 HYPERLINK l bookmark114 o Current Document 后台

5、管理所有任务模块设计与实现36 HYPERLINK l bookmark119 o Current Document 后台管理所有用户模块设计与实现37 HYPERLINK l bookmark124 o Current Document 后台管理系统公告模块设计与实现37 HYPERLINK l bookmark131 o Current Document 后台管理帮助中心模块设计与实现38第六章系统测试40系统测试原那么40系统测试用例40用户注册测试40用户登录测试41任务发布测试 36稿件提交测试37其他测试 38总结与展望42参考文献40辞42威客网的设计与实现摘要:威客是指在网络时

6、代凭借自己的能力智慧和创意,在互联网上出售自 己的富裕工作时间和劳动成果而获得报酬的人;而威客类的出现,为有知识生产 加工能力的个人创造了一个销售知识产品的商业平台和时机。此系统的设计正是为有需求或者有能力的的用户提供一个实用的网络效劳平台,系统采用了B/S的模式,使用java语言技术,并结合了 struts2、Spring Hibernate框架技术,完 成了一个根本满足用户需求的威客系统,并且系统具有一定的稳定性、平安性和拓展性。关键词:威客网;Java Struts2; Spring; Hibernate.word.zl.word.zl.word.zl.Design and realiz

7、ation 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 business platform and opportunity

8、for the ability of knowledge production and processingof 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 2 framework, Spring, Hibernate, ple

9、ted a basic meet user requirements of system, and the system has certain stability, security and expansibility.Keywords:witkey net; Java; Struts2; Spring; Hibernate第一章 绪论随着互联网技术的不断变革,电子商务已经得到的广泛的推广和极大的开展,相信在未来的一段时间里,会日趋成熟。不出家门,人们可以通过互联网买到全世界各的的商品, 商人可以通过互联网电子商务的模式在网上进展商品营销和推广,增加商品的曝光率和品牌知名对的提升。同时,作为

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

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

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

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

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

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

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

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

18、依赖Strutsl API,有侵入性,这点可以从写 Action类和FormBean的时 候看的出来,Action必须实现Struts的Action类而Struts2之所以以 WebWork的设计思想为其核心,一点就是最近 WebWork的上升势头,再就是 WebWork没有Struts1上面的那些缺点,更符合 MVC的设 计思想,也更利于代码的复用。基于以上介绍可以看的出,Struts2体系构造与Struts1的体系构造有很大的差异,Struts1是使用ActionServlet做为其中心处理器,Struts2那么使用一个拦截器FilterDispatched做为其中心处理器,这卞做的一个好

19、处就是将Action类和Servlet API进展了别离。Struts2的简单处理流程如下:1浏览器发送请求2中心处理器根据struts.xml文件查找对应的处理请求的 Action类3WebWork的拦截器链自动对请求应用通用功能,例如:WorkFlow、Validation等功能4如果Struts.xml文件中配置 Method参数,那么调用 Method参数对应的Action 类中的Method方法,否那么调用通用的 Execute方法来处理用户请求5将Action类中的对应方法返回的结果响应给浏览器SpringSpring是一个开源框架,是为了解决企业应即|序开发复杂性而创立的。框 架

20、的主要优势之一就是其分层架构, 分层架构允许您选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架;Spring框架主要可以分为3个核心容: 1、容器:核心容器提供 Spring框架的根本功能。核心容器的主要组件是 BeanFactory它是工厂模式的实现。BeanFactory使用控制反转 IOC模式将 应用程序的配置和依赖性规与实际的应用程序代码分开。2、控制反转IoC , Inversion of Control:不创立对象,但是描述创立它们 的方式。在代码中不直接与对象和效劳连接,但在配置文件中描述哪一个组件需 要哪一项效劳。容器 在Spring框架中是IOC容器负责将这些联系

21、在一 起。3、面向切面编程AOP , Aspect-Oriented Programming :通过配置管理特 性,Spring AOP模块直接将面向方面的编程功能集成到了Spring框架中。所以,可以很容易地使 Spring框架管理的任何对象支持 AOP。Spring AOP模块为基 于Spring的应用程序中的对象提供了事务管理效劳。通过使用Spring AOP,不用依赖E组件,就可以将声明性事务管理集成到应用程序中。HibernateHibernate是一个基于Java的开源的持久化中间件,对 JDBC做了轻量的封 装。采用ORM映射机制,负责实现JavaM象和关系数据库之间的映射,把

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

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

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

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

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

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

28、客。5发布任务:托管赏金后,管理员通过审核将发布者的需求信息直接将用户的任务发布与威客首页,供应广阔网民查看和有意向的用户参与竞标。威客任务发布流程如下列图 4.2所示:4威客网的稿件提交流程.注册威客:在威客主页选择注册用户,注册自己的威客会员,如果有那么直接登陆。登陆前方可竞标。2查看任务列表:登陆后,用户在任务大厅查看任务列表,看是否有自己感兴趣的任务然后参与竞标。.参加任务:点击自己想参加的任务竞标工程,在该任务页面点击我要交稿。.提交作品:根据表单容填写自己参加任务所要提供的任务作品。.发布人选择中标:在任务截止时间到期之前,任务发布人可以在众多稿件当中选择自己最满意的任务作品并宣告

29、竞标用户中标。.发布赏金:管理员根据中标用户汇款项至中标用户任务竞标流程图如下列图4.3所示:图4.3接取任务流程图4.5数据库设计系统E-R图datetmp intenclDate .nt- assignmentldassignmentcategoiyld int contri bUtion Count currenlbJeed nt detail 。)或, BndDate dste lileName v:An?hr( need it pay irr pubDate. datetime status r title 心mtiF uiti ntQ id nt balance i:l i. de

30、 email: varch ar (26) experience it password v arch ar userName warcha.contritmtioncontent longtext iileName: varcharf. hudden. t iirr pass Date -1 t- picture vane ha r(6 QQ pubDate d3tPtimp status irn assignmentld i. und inJ图4.4系统E-R图1category-i; cate gory Id itcateQoryDescribecategory Name ir pare

31、ntCategoryld i .图4.5系统E-R图2announcement尊 id intcontent longteict pubDate c:at?J i title varcharffS)problemquestion tfct a(. answer lonr:text helpfultype imrnarager窠 id: intgrade ir tname:7arcriar(26)paWord hr.图4.6系统E-R图34.5.2数据库逻辑构造设计本系统的数据库管理系统采用 MySQL,其数据库名为“ vikeuser图书表。具体数据表构造如表4.1所示表4、1 user数据表

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

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

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

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

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

37、ernate的整合中,主要把Hibernate的SessionFacto序口事务管理交由Spring管理。所以,在spring4-config.xml文件中的配置如下:property name= annotatedClasses.vike.model.User.vike.model.Manager.vike.model.Category.vike.model.Assignment.vike.model.Contribution.vike.model.DateTmp.vike.model.Announcement.vike.model.Problemhibernate.dialect=org.

38、hibernate.dialect.MySQLDialecthibernate.show_sql=truehibernate.format_sql=truehibernate.hbm2ddl.auto=selecthibernate.connection.automit=true止匕外,需要在Web容器本系统使用Tomcat效劳器启动的时候加载Springs所以,还需要在web.xml中进展如下配置:contextConfigLocationclasspath:spring-config.xmllistenerorg.springframework.web.context.ContextLoa

39、derListener/listener-class/listenerStruts2 Spring 与 Hibernate 的整合本系统使用的Struts2的版本为2.3.44Struts2与 Spring 整合,主要是把 Struts2 中的 objectFactory指定为 Spring,由 Spring容器来管理 Action 的生命周期。把 struts2-spring-plugin-.j汨入 lib 目 录即可。止匕外,需要在web.xml中配置Struts2的过滤器,配置如下所示:struts2org.apache.struts2.dispatcher.ng.filter.Stru

40、tsPrepareAndExecuteFilterstruts2/*系统前台主要功能模块设计与实现任务实体类定义Entitypublicclass Assignment privateint id;privateint categoryld;private String title;private String detail;private String fileName;privateint pay;privateint need;private Date pubDate;private Date endDate;private User user;privateint status; /

41、0 未托管,1托管,2完毕privateint currentNeed;privateint contributionCount;private Set contributions;public Assignment() contributions = new HashSet();IdGeneratedValuepublicint getId() return id;publicvoid setId(int id) this.id = id;publicint getCategoryId() return categoryId;publicvoid setCategoryId(int cate

42、goryId) this.categoryId = categoryId;public String getTitle() return title;publicvoid setTitle(String title) this.title = title;public String getDetail() return detail;publicvoid setDetail(String detail) this.detail = detail;public String getFileName() return fileName;publicvoid setFileName(String f

43、ileName) this.fileName = fileName;publicint getPay() return pay;publicvoid setPay(int pay) this.pay = 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(Temporal

44、Type. DATE )public Date getEndDate() return endDate;publicvoid setEndDate(Date endDate) this.endDate = 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 setS

45、tatus(int status) this.status = status;OneToMany(mappedBy = assignment, fetch = FetchType. LAZY , cascade = CascadeType.ALL ) public Set getContributions() return contributions;publicvoid setContributions(Set contributions) this.contributions = contributions;publicint getCurrentNeed() return current

46、Need;publicvoid setCurrentNeed(int currentNeed) this.currentNeed = currentNeed;publicint getContributionCount() return contributionCount;publicvoid setContributionCount( int contributionCount) this.contributionCount = contributionCount;稿件实体类定义Entitypublicclass Contribution privateint id;private Stri

47、ng content;private String picture;private String fileName;private Date pubDate;private Date passDate;privateboolean hidden;privateint status;private Assignment assignment = new Assignment();private User user = new User();IdGeneratedValuepublicint getId() return id;publicvoid setId(int id) this.id =

48、id;public String getContent() return content;publicvoid setContent(String content) this.content = content;public String getPicture() return picture;publicvoid setPicture(String picture) this.picture = picture;public String getFileName() return fileName;publicvoid setFileName(String fileName) this.fi

49、leName = fileName;public Date getPubDate() return pubDate;publicvoid setPubDate(Date pubDate) this.pubDate = pubDate;public Date getPassDate() return passDate;publicvoid setPassDate(Date passDate) this.passDate = passDate;publicboolean isHidden() return hidden;publicvoid setHidden(boolean hidden) th

50、is.hidden = hidden;publicint getStatus() return status;publicvoid setStatus(int status) this.status = status;ManyToOne(fetch = FetchType. EAGER)JoinColumn(name = assignmentId)public Assignment getAssignment() return assignment;publicvoid setAssignment(Assignment assignment) this.assignment = assignm

51、ent;ManyToOne(fetch = FetchType. EAGER) JoinColumn(name = uid)public User getUser() return user;publicvoid setUser(User user) this.user = user;持久化操作默认实现类publicabstractclass DaoSupport implements BaseDaoprotected Class entityClass = GenericsUtils. getGenericType(this.getClass();protected SessionFacto

52、ry sessionFactory;public SessionFactory getSessionFactory() return sessionFactory;Resourcepublicvoid setSessionFactory(SessionFactory sessionFactory) this.sessionFactory = sessionFactory;publicvoid delete(Serializable. ids) for (Serializable id : ids) T t = (T) sessionFactory.getCurrentSession().loa

53、d(this.entityClass, id); sessionFactory.getCurrentSession().delete(t);public T get(Serializable entityId) return (T) sessionFactory.getCurrentSession().gett(his.entityClass, entityId);public T load(Serializable entityId) return (T) sessionFactory.getCurrentSession().load(this.entityClass, entityId);

54、publicvoid save(Object obj) sessionFactory.getCurrentSession().save(obj);publicvoid saveOrUpdate(Object obj) sessionFactory.getCurrentSession().saveOrUpdate(obj);publicvoid update(Object obj) sessionFactory.getCurrentSession().update(obj);public Object uniqueResult(String hql, Object queryParams) Qu

55、ery query = sessionFactory.getCurrentSession().createQuery(hql);setQueryParams(query, queryParams);return query.uniqueResult();protectedvoid setQueryParams(Query query, Object queryParams)if (queryParams!=null & queryParams.length0)for(int i=0; iqueryParams.length; i+)if (queryParamsi instanceof Lis

56、t) query.setParameterList(list,(List)queryParamsi);else query.setParameter(i, queryParamsi);public PageModel find( int pageNo, int maxResult) return find( null, null, null, pageNo, maxResult);public PageModel find( int pageNo, int maxResult, String where, Object口 queryParams) return find(where, quer

57、yParams, null, pageNo, maxResult); public PageModel find( int pageNo, int maxResult, Map orderby) return find( null, null, orderby, pageNo, maxResult);public PageModel find(String where, Object口 queryParams,Map orderby, int pageNo, int maxResult) final PageModel pageModel = new PageModel();String hq

58、l = newStringBuffer().append(select count(*) from ).append(GenericsUtils.getGeneriameentityClass).append().append(where = null ? : where).toString();Query query = sessionFactory.getCurrentSession().createQuery(hql);setQueryParams(query, queryParams);int totalRecords = (Long) query.uniqueResult().int

59、Value(); pageModel.setTotalRecords(totalRecords);pageModel.setPageSize(maxResult);int totalpages = pageModel.getTotalPages();if (totalpagespageNo) pageNo = totalpages ;pageModel.setPageNo(pageNo);hql = newStringBuffer().append(from ).append(GenericsUtils.getGeneriameentityClass).append().append(wher

60、e = null ? : where).append(createOrderBy(orderby).toString();query = sessionFactory.getCurrentSession().createQuery(hql); setQueryParams(query, queryParams);List list = null;if (maxResult 0 & pageNo 0) list = query.list(); else list = query.setFirstResult(getFirstResult(pageNo,maxResult).setMaxResul

温馨提示

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

评论

0/150

提交评论