毕业设计(论文)-基于JAVA的Weblog 网站设计与实现.doc_第1页
毕业设计(论文)-基于JAVA的Weblog 网站设计与实现.doc_第2页
毕业设计(论文)-基于JAVA的Weblog 网站设计与实现.doc_第3页
毕业设计(论文)-基于JAVA的Weblog 网站设计与实现.doc_第4页
毕业设计(论文)-基于JAVA的Weblog 网站设计与实现.doc_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

邵阳学院毕业设计(论文)第1章 绪论现代科技日新月异,人们可以从很多途径获得信息,访问web log成为一种很重要的获取信息的方式。博客一词开始代表着数字生活新时尚,通过文字、图片、声音、视频、无线等,尽情展示自我、分享感受、参与交流,美好你我生活。show you, share me,人人都可以博客,人人都需要博客。1.1项目开发背景“博客”一词是从英文单词blog翻译而来。blog是weblog的简称,而weblog则是由web和log两个英文单词组合而成。weblog就是在网络上发布和阅读的流水记录,通常称为“网络日志”,简称为“网志”。它是继email、bbs、im之后出现的第四种全新的网络交流方式。它绝不仅仅是一种单向的发布系统,而且有着极其出色的交流功能。另外blog也提供了非常方便实用的个性化功能。简言之,blog就是以网络作为载体,简易迅速便捷地发布自己的心得,及时有效轻松地与他人进行交流,再集丰富多彩的个性化展示于一体的综合性平台。是一种通常由个人管理、不定期张贴新的文章、图像或视频的网站。博客上的文章通常根据张贴时间,以倒序方式由新到旧排列。许多博客专注在特定的课题上提供评论或新闻,其他则被作为比较个人的日记。一个典型的博客结合了文字、图像、其他博客或网站的链接、及其它与主题相关的媒体。能够让读者以互动的方式留下意见,是许多博客的重要要素。大部分的博客内容以文字为主,仍有一些博客专注在艺术、摄影、视频、音乐、播客等各种主题。博客是社会媒体网络的一部分。1.2项目开发目的与意义目的:提供一个互联网平台的个人信息的交流中心,让每个人零成本、零维护地创建自己的网络媒体,从而达到共享资料与交流信息的目的。意义:随着网络的普及,无论是政府机关、大中小型企业、医院、银行、乃至个人都需要通过网络达到共享与交流的目的。能最大化的达到交流的目的就要建立自己的门户网站,所以就形成了现在形形色色的网站了。对于个人而言,虽然信息量比较小,共享与交流却是必须的,但是不可能人人自掏腰包来建立网站,由于这种种因素孕育了博客网站的诞生。就一个普通人来说,他不需要一个网站只需要一个网页来展示他的信息,保存他的一些资料,博客网站就是一个由众多用户网页页面形成的网站。它的诞生形成了一个互联网个人信息交流中心,它可以让每个人零成本、零维护地创建自己风格的网络媒体,每个人都可以随时把自己的思想火花和灵感更新到博客站点上。1.3相关技术论述1.3.1 jsp技术概述jsp(全称javaserver pages)是由sun microsystems公司倡导和许多公司参与共同建立的一种使软件开发者可以响应客户端请求,而动态生成html、xml或其他格式文档的web网页的技术标准。jsp技术是以java语言作为脚本语言的,jsp网页为整个服务器端的java库单元提供了一个接口来服务于http的应用程序。jsp使java代码和特定的预定义动作可以嵌入到静态页面中。jsp句法增加了被称为jsp动作的xml标签,它们用来调用内建功能。另外,可以创建jsp标签库,然后像使用标准html或xml标签一样使用它们。标签库提供了一种和平台无关的扩展服务器性能的方法。jsp被jsp编译器编译成java servlets。一个jsp编译器可以把jsp编译成java代码写的servlet然后再由java编译器来编译成机器码,也可以直接编译成二进制码。从架构上说,jsp可以被看作是从servlets高级提炼而作为java servlet 2.1 api的扩展而应用。servlets和jsps最早都是由sun microsystems(升阳公司)开发的。从jsp1.2版本以来,jsp处于java community process开发模式下。jsr-53规定了jsp 1.2和servlet 2.4的规范,jsr-152规定了jsp 2.0的规范。2006年5月,jsp 2.1的规范作为java ee 5的一部份,在jsr-245中发布。综上所述其实jsp就是服务器端的一种基于java语言的网页技术,所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,与客户端的浏览器无关。在传统的网页中加入java代码和jsp标签之后放在服务器端运行,再将运行的结果向用户发布,用户通过浏览器就能够看到精彩纷呈的网页了。也可以简单的理解为:html+java程序片段+jsp标记 = jsp网页。容器在遇到jsp网页的请求时,首先执行其中的java代码,通过这些java代码可以操作数据库、发送email、传输数据信息以及转到另外的网页等。然后服务器将执行完代码后所产生的结果封装到原html网页中,以html的格式返回给用户,这就是jsp网页的运行原理 13。通过jsp的运行原理,我们可以得到如下的jsp执行过程:图1.1 jsp执行原理图jsp技术的优势:(1)一次编写,到处运行。在这一点上java比php更出色,除了系统之外,代码不用做任何更改。(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比asp/php的局限性是显而易见的。 (3)强大的可伸缩性。从只有一个小的jar文件就可以运行servlet/jsp,到由多台服务器进行集群和负载均衡,到多台application进行事务处理,消息处理,一台服务器到无数台服务器,java显示了一个巨大的生命力。 (4)多样化和功能强大的开发工具支持。这一点与asp很像,java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下 6。jsp转译成servlet有以下几个方法:(1) jspinit()在jsp页面初始化时被调用。可以覆盖该方法,以提供任何的初始化工作;(2) jspdestroy()在jsp页面被销毁时调用。可以覆盖该方法,以提供任何的jsp清楚工作;(3) jspservice()由容器自动定义,不应当提供该方法的实现 。jsp的页面内容包括:(1) 静态内容html静态文本;(2) 指令;(3) 表达式;(4) scriptlet;(5) 声明;(6) 动作以“ jsp: 动作名 ”开始,以“ ” ;(7) 注释, 16。1.3.2脚本语言的简介(1)html语言超文本置标语言(英文:hypertext markup language,简称为html)是为“网页创建和其它可在网页浏览器中看到的信息”设计的一种置标语言。html被用来结构化信息例如标题、段落和列表等等,也可用来在一定程度上描述文档的外观和语义。由蒂姆伯纳斯-李给出原始定义,由ietf用简化的sgml(标准通用置标语言)语法进行进一步发展的html,后来成为国际标准,由万维网联盟(w3c)维护。包含html内容的文件最常用的扩展名是.html,但是像dos这样的旧操作系统限制扩展名为最多三个字符,所以.htm扩展名也被使用。虽然现在使用的比较少一些了,但是.htm扩展名仍旧普遍被支持。编者可以用任何文本编辑器或所见即所得的html编辑器来编辑html文件。早期的html语法被定义成较松散的规则,以有助于不熟悉网络出版的人采用。网页浏览器接受了这个现实,并且可以显示语法不严格的网页。随着时间的流逝,官方标准渐渐趋于严格的语法,但是浏览器继续显示一些远称不上合乎标准的html。使用xml的严格规则的xhtml(可扩展超文本置标语言)是w3c计划中的html的接替者。虽然很多人认为它已经成为当前的html标准,但是它实际上是一个独立的、和html平行发展的标准。w3c目前的建议是使用xhtml 1.1、xhtml 1.0或者html 4.01进行网络出版。结构性标记并未指示浏览器的显示方式,但是大多数浏览器标准化了这些元素的显示,例如默认情况下上述的标题会被显示为较大的粗体文字。参见层叠样式表(css)。比较常用的结构性标记有: html元素 标记html内容的开始和结束。 head元素 标记html文件头,包含不在正文中显示的关键字、标题、脚本等等。 title元素 标记html文件的标题。 body元素 标记html文件正文的开始和结束。 (2)javascript语言javascript是一种由netscape的livescript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如perl,遗留的速度问题,为客户提供更流畅的浏览效果。当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是netscape的浏览器navigator加入了javascript,提供了数据验证的基本功能。总体来说javascript 是属于网络的脚本语言,被数百万计的网页用来改进设计、验证表单、检测浏览器、创建cookies,以及更多的应用,是因特网上最流行的脚本语言,而且简单易用。javascript的组成:1) 核心(ecmascript)2) 文档对象模型(dom) 3) 浏览器对象模型(bom)javascript的知识结构:1) 语法基础a) 数据类型,强制数据类型转换b) 变量,函数c) 运算符d) 条件,循环语句2) 核心对象数组对象,字符串对象,数学对象,日期对象,自定义对象。3) 浏览器对象window、 document、 location、 history 、form对象 、表单元素对象 2。javascript嵌入网页的方法:1) 使用 标签将语句嵌入文档。2) 将外部javascript 源文件链接到 html文档中。可使多个网页共享一个脚本文件内的代码。一般在其中定义一系列在多个网页中都可能要用到的函数3) 作为网页元素的事件处理程序,当事件触发时自动运行。1.4 编程工具简介1.4.1myeclipse简介myeclipse企业级工作平台(myeclipse enterprise workbench ,简称myclipse)是对eclipse ide的扩展,利用它我们可以在数据库和javaee的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的javaee集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持html, struts, jsf, css, javascript, sql, hibernate。在结构上,myeclipse的特征可以被分为7类:1. javaee模型2. web开发工具3. ejb开发工具4. 应用程序服务器的连接器5. javaee项目部署服务6. 数据库服务7. myeclipse整合帮助对于以上每一种功能上的类别,在eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。myeclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。1.4.2sql server 2005数据库简介sql server express 是一个免费、易用且便于管理的数据库。sql server express 与 microsoft visual studio 2005 集成在一起,可以轻松开发功能丰富、存储安全、可快速部署的数据驱动应用程序。sql server express 是免费的,可以再分发(受制于协议),还可以起到客户端数据库以及基本服务器数据库的作用。sql server express 是低端 isv、低端服务器用户、创建 web 应用程序的非专业开发人员以及创建客户端应用程序的编程爱好者的理想选择。sql server 2005 通过在可伸缩性、数据集成、开发工具和强大的分析等方面的革新更好的确立了微软在bi领域的领导地位。sql server 2005 能够把关键的信息及时的传递到组织内员工的手中,从而实现了可伸缩的商业智能。从ceo 到信息工作者,员工可以快速的、容易的处理数据,以更快更好的做出决策。sql server 2005全面的集成、分析和报表功能使企业能够提高他们已有应用的价值,即便这些应用是在不同的平台上 9。商业智能增强体现在以下几个方面:1) 端到端的集成bi平台2) 集成服务3) 分析服务4) 报表服务5) microsoft office system的集成1.4.3tomcat web服务器简介tomcat是一款优秀的支持web容器的服务器,它是apache基金会的jakarta项目中的一个核心的项目。有apache,sun和其他一些公司及个人共同开发而成。由于有了sun公司的参与和支持,最新的servlet和jsp规范总能在tomcat中得到体现。tomcat服务器不但支持servlet和jsp的运行,而且还具备了作为商业web容器的基本特征,如tomcat管理和控制平台、安全域管理和tomcat阀等。tomcat已经成为目前开发基于java的web应用程序和最佳服务器选择之一。虽然tomcat在执行web应用程序方面表现出色,但是由于其不包含ejb容器,所以无法支持ejb组件的部署和运行,但tomcat可以与其他一些软件集成起来实现更多的功能,如与jboss服务器集成起来可以支持ejb的开发。tomcat不仅仅是一个j2ee的web容器,它也是具有传统的web服务器的功能:处理html页面。但是与apache相比,它的处理静态html的能力相对较差。我们可以将tomcat和apache集成到一起,让apache处理静态html,而tomcat处理jsp和servlet。这种集成只需要修改一下apache和tomcat的配置文件即可。tomcat中的应用程序与传统的桌面应用程序不同,它是一个war(web archive)文件。war是sun提出的一种web应用程序格式,与jar类似,也是许多文件的一个压缩包。tomcat的目录结构如下:bin文件夹:该文件夹中存放启动和关闭tomcat服务器的文件。common文件夹:该文件夹中存放tomcat服务器及所有web应用程序都可以访问的jar文件和类文件。conf文件夹:该文件夹中存放tomcat服务器的各种配置文件。logs文件夹:该文件夹中存放tomcat服务器的日志文件。server文件夹:该文件夹中存放tomcat服务器的各种后台管理文件。shared文件夹:该文件夹中所有web应用程序都可以该问的jar文件和类文件,但这些文件不能被tomcat服务器所访问。src文件夹:该文件夹中存放tomcat服务器相关的源代码。temp文件夹:该文件夹中存放tomcat服务器的各种临时文件。webapps文件夹:该文件夹中存放web应用文件。work文件夹:该文件夹存放jsp页面转换为servlet的文件 14。- 61 -邵阳学院毕业设计(论文)第2章 系统分析2.1系统概述博客,在网络上发表文章、展现个人的个性,而博客系统,是为这类人群提供一个相互交流、学习的平台。博客的两大基本功能是共享与交流。共享,是将文章、图片、心得等一些很私人的东西,拿出来和多数人一起分享;交流,是有这同样兴趣、爱好、语言的一类人之间的联系。本系统主要分为:个人博客空间、个人博客管理和博客后台管理三个部分。2.2系统可行性分析2.2.1经济价值可行性博客从2001年在国内落地以来,到2005年“中国博客元年”到来,“全民博客”加上“名人博客”的火热创造了惊人的点击率,博客的发展具备了投放广告的可能。博客广告的出现意味着个人写博客有了商业价值,博客由此进入了商业化的探索阶段。本文着重于“个人博客广告”的探讨,通过分析“个人博客广告”与传统互联网广告相比的优势,针对“个人博客广告”面临的问题提出相应的对策和建议从而得出结论:个人博客广告的商业化发展具有可行性。既然个人博客已经具备这么大的商业价值,作为一个整体的博客系统的商业经济价值是不可限量的。2.2.2技术可行性相信这一点不用强加说明了,现在各式各样的博客网站如雨后春笋般的出现,其中的不乏像网易,新浪这样的互联网巨头。其实维护一个博客网站对于硬件和软件方面的要求都不是很高,当然随着注册人数的增加要适当的升级服务器。2.3系统需求分析通过对一些典型博客网站的考察、分析以及实际的市场调查,要求本系统具有以下功能:(1)系统个人博客前台展示需求分析a) 用户的注册,登录。b) 登录的用户可以访问自己博客或者访问他人博客,未登录用户可以访问任意博客,当是不计入浏览数。c) 进入博客的用户可以浏览文章,发表留言,浏览相册,查看个人资料,访问好友。如果访问的是他人博客还可以添加好友,发送小纸条。(2)系统个人博客后台管理需求分析a) 个人管理、文章管理。其中包括了查找、修改资料;添加、删除文章。b) 相册管理、好友管理。其中包括了添加、删除、管理相册;查看、删除好友。c) 留言管理、小纸条管理。其中包括了查看、删除留言;查看、删除纸条。(3)系统管理员后台管理需求分析a) 用户管理。其中包括用户博客是否被推荐,用户是否冻结,用户是否解冻,用户删除。b) 文章管理。其中包括文章列表查询,文章详细查询,文章是否推荐,按用户名查询文章。c) 相册管理。其中包括相册的查询、删除。d) 修改管理员密码。邵阳学院毕业设计(论文)第3章 系统概要设计3.1 项目规划博客系统是一个典型的jsp数据库开发应用程序,由个人博客前台展示、个人博客管理以及博客后台管理三部分组成。(1) 个人博客前台展示该部分主要包括用户的注册、登录、浏览博客各种内容、发表留言信息、添加好友、向好友发送信息等。(2) 个人博客管理该部分主要对个人博客的一些基础数据进行有效管理,包括个人资料修改、博客内容管理、好友的管理、留言的管理等。(3) 博客后台管理。该部分主要是对所以注册博客的统一数据进行有效管理,包括用户的管理、文章的管理、相册的管理等。3.2系统总体构架这个系统总体划分为两个层次:(1) struts层:这里采用struts2框架作为系统开发的控制器组件,在页面请求处理流程中与struts1完全相同。它仍然是以前控制框架为主体的框架,用户的请求会通过控制器选择不同的控制器组件(即action)来执行不同的操作。在控制器组件中request、response和session这些servlet类的对象仍然可以使用 5。(2) hibernate层:这里采用hibernate3作为系统的开发的模型组件,在数据储存器和控制器之间加入一个持久层,该层简化crud数据的工作,分离应用程序和数据库之间的耦合,实现在无需修改代码的情况下轻松更换应用程序数据库。hibernate3几乎支持所有的主流数据库,从开源数据库hsqldb、mysql、postaresql到强大企业级数据库oracle、ibm db2等。本系统采用的数据库是时下比较适合中小型企业的数据库sqlserver 2005。系统层次结构如图3.1所示:filterdispacher拦截器浏览器request请求控制器组件struts层:视图插件response响应持久层hibernate层:数据库图3.1 系统层次结构图3.3 系统功能结构设计个人博客空间是为他人提供浏览、查看博客内容的平台。在这个空间中,可以浏览文章、发表留言、添加好友和浏览相册。个人博客空间的功能结构图如图3.2所示。个人网站未登录登录用户他人博客自己博客任意博客用户注册发送纸条添加好友访问好友个人资料浏览相册发表留言浏览文章图3.2 个人博客空间的功能结构图个人博客管理,主要功能有个人管理、文章管理、相册管理、好友管理、留言管理和小纸条管理。个人博客管理功能结构图如图3.3所示。图3.3 个人博客管理功能结构图博客后台管理系统,主要是对博客用户和管理员的管理。博客后台管理包括用户管理、用户文章管理、用户相册管理和修改管理员密码。博客后台管理的功能结构图如图3.4所示。图3.4 博客后台管理功能结构图3.4 面向对象设计系统开发是基于java的面向对象的语言进行开发。根据前面需求分析的模型,可建立以下类与接口,以实现系统各模块的功能。3.4.1 管理员模块操作类该模块所涉及的类提供了一系列的关于后天管理员修改密码、验证密码、管理员退出的方法。其类图如图3.5所示。图3.5 后台管理员类图3.4.2 文章模块操作类该模块中的类提供了一系列的关于管理员登陆后对文章的详细查询,管理员登陆后对文章的列表查询,前台文章的详细查询,前台文章回复内容的详细查询,文章的修改操作,文章的删除操作,文章表单的校验,文章的添加的方法。其类图如图3.6所示。图3.6 后台管理员类图3.4.3 留言模块操作类该模块中的类提供了一系列的关于留言删除、留言查询、前台添加留言、前台查看留言的方法。其类图如图3.7所示。图3.7 留言模块类图3.4.4 用户信息操作类该模块中的类提供了一系列的关于删除朋友信息、后台查询用户、添加好友、删除相册类别、修改相册类别名称、查询并添加相片类别信息、转向添加文章的页面、修改文章类别名称、删除文章类别操作、查询并添加类别信息、修改用户密码的校验、修改用户的密码的操作、修改个人信息校验、修改个人信息操作、根据用户id查询用户信息、根据对象进入相应博客、用户登录校验、用户推荐不推荐操作、用户冻结或解冻操作、用户查询功能、用户注册校验、用户注册、后台用户信息删除操作的方法。其类图如图3.8所示。图3.8 用户信息操作模块类图3.4.5 前台展示操作类该模块中的类提供了一系列显示推荐博客、热门博客、推荐博客、热门文章的方法。其类图如图3.9所示。图3.9 前台展示操作类图邵阳学院毕业设计(论文)第4章 数据库设计4.1 数据库er图本系统的er图如图4.1所示:发表管理内容题目地址名称照片文章类别访问量qq性别职业电话主页名称用户email真实姓名密码用户名1类别管理员管理11nn1图4.1 数据库er图4.2 数据库物理设计本系统的物理设计如图4.2所示:图4.2 数据库物理设计关系图4.3 数据库图表设计表4.1 管理员信息表(tb_admin)字段名称数据类型是否为空是否主键默认值描述idint否null系统编号accountvarchar(50)否null管理员账号passwordvarchar(50)否null管理员密码表4.2 用户信息表(tb_userinfo)字段名称数据类型是否为空是否主键默认值描述idint(4)否null系统编号accountvarchar(50)否是null用户名passwordvarchar(40)否null密码realnamevarchar(10)否null真实姓名emailvarchar(50)否nullemail地址sexvarchar(50)否null性别telvarchar(50)否null联系电话professionvarchar(50)否null职业名称addressvarchar(50)否null联系地址homepagevarchar(50)是空字符串主页名称qqvarchar(50)否nullqq号码headgifvarchar(50)是空字符串头像地址freezevarchar(10)是空字符串是否冻结art_typevarchar(100)是空字符串文章类别pic_typevarchar(100)是空字符串相片类别friend_typevarchar(50)是空字符串好友名称commendvarchar(50)是空字符串是否推荐vistorint(4)是0访问次数selfvarchar(50)是空字符串自我评价表4.3 文章回复信息表(tb_rearticle)字段名称数据类型是否为空是否主键默认值描述idint(4)否是null系统编号re_idint(4)否null回复人idaccountvarchar(50)否null回复人文章contentvarchar(3000)否null回复内容re_timevarchar(50)否null回复时间表4.4 留言信息表(tb_info)字段名称数据类型是否为空是否主键默认值描述idint(4)否null系统编号info_accountvarchar(50)否null发送信息人info_fromaccountvarchar(50)否null接受信息人info_contentvarchar(300)否null发送内容info_signint(4)否null留言标识表4.5 相册信息表(tb_photo)字段名称数据类型是否为空是否主键默认值描述idint(4)否是null系统编号phototypevarchar(50)否null相片类别photonamevarchar(50)否null相片名称photoaddressvarchar(300)否null相片地址photovisitint(4)否null访问量authorvarchar(50)否null发布者表4.6 文章表(tb_article)字段名称数据类型是否为空是否主键默认值描述idint(4)否是null系统编号typenamevarchar(50)否类型名称titlevarchar(50)否文章题目contentvarchar(300)否文章内容authorvarchar(50)否文章作者sendtimevarchar(50)否发表时间visitint否访问量commendvarchar(10)否是否推荐第5章 详细设计5.1 系统流程设计个人博客前台管理系统流程图如图5.1所示。个人博客前台校验用户注册是否成功校验用户登陆是否成功nnyy用户已经登陆访问他人博客访问自己博客文章浏览热门文章浏览留言查询个人资料查询添加好友相册浏览类别查询文章好友查询访问好友博客发送纸条进入后台管理纸条管理好友管理相册管理留言管理文章管理图5.1 个人博客前台管理系统流程图个人博客管理员后台管理系统流程图如图5.2所示。个人博客管理员后台管理文章管理图片管理修改管理员密码退出后台用户管理校验管理员是否登录成功管理员登录后台页面图5.2 个人博客管理员后台管理系统流程图5.2 公共模块设计5.2.1 编写hibernate数据库配置文件hibernate配置文件主要用于配置数据库连接和hibernate运行时所需的各种属性。它同时支持xml格式的配置文件和传统的properties文件配置方式,本系统采用了xml型配置文件。xml配置文件提供了更容易的结构和更强的配置能力,可以直接对映射文件加以配置并由hibernate自动加载。配置文件名默认为“hibernate.cfg.xml”,本系统的配置文件发布在src文件夹中,配置关键代码如下: sa jdbc:sqlserver:/localhost:1433;databasename=db_wyblog org.hibernate.dialect.sqlserverdialect com.microsoft.sqlserver.jdbc.sqlserverdriver 5.2.2 数据库持久化类的编写本系统中使用的数据库持久化类的名称为objectdao。本系统使用了hibernate和struts2框架的整合技术,在编写数据持久化类的代码中,分别定义了sessionfactory类,session类和transaction类的属性,然后通过静态方法取得对数据库的连接操作,最后根据连接对象分别实现对数据表的添加、修改、删除和查询操作。1、获取数据库的连接通过静态方法创建数据库连接的代码如下:public class objectdao private static sessionfactory sessionfactory = null;private session session = null;transaction tx = null;static try configuration config = new configuration().configure();sessionfactory = config.buildsessionfactory(); catch (exception e) system.out.println(e.getmessage();对上述方法代码的说明如下:sessionfactory接口:初始化hibernate充当数据存储源的代理,创建session类的对象。一个sessionfactory类的对象对应一个数据存储源,该数据源从sessionfactory对象获取。sessionfactory接口需要一个很大的缓存,用来存放预定义的sql语句以及映射元数据。用户还可以为sessionfactory接口配置一个缓存插件,这个缓存插件通常被称为hibernate的第二级缓存,该缓存用来存放被操作单元读过的数据,将来其他操作单元可能会重用这些数据,因此这个缓存中的数据能够被所有单元共享。一个工作单元对应一个数据库事务。session接口:session接口是hibernate应用使用最广泛的接口。session通常也称为持久化管理器,它提供了和持久化相关的操作,如添加、修改、删除、加载及查询对象。transaction接口:transaction接口是hibernate的数据库事务接口,它对底层的事务接口做了封装,底层事务接口包括jdbc api、jta、corba api。hibernate应用可通过一致的transaction接口来声明事务边界,这有助于应用在不同的环境或容器中移植。configuration接口:configuration接口用于配置并且跟踪启动hibernate。hibernate应用通过configuration实例来指定对象关系映射文件的位置或者动态配置hibernate的属性,然后创建sessionfactory实例。2、删除数据删除数据操作的方法名称为deletet。在该方法中,以t对象类型为参数,执行session类中的delete方法,实现删除数据的操作。具体实现代码如下:public boolean deletet(t t) session session = sessionfactory.opensession();try tx = session.begintransaction();session.delete(t);mit(); catch (exception e) return false; finally session.close();return true;3、保存数据添加数据操作的方法名称为savet。在该方法中,以t对象类型为参数,执行session类中的save(),实现添加数据的操作。具体实现代码如下:public boolean savet(t t) session session = sessionfactory.opensession();try tx = session.begintransaction();session.save(t);mit(); catch (exception e) system.out.println(e);return false; finally session.close();return true; 在上述代码中,savet()并不立即执行sql中insert语句。只有当session清理缓存时才会执行sql中insert语句。当session清理缓存时,才会执行sql中insert语句。如果在save()之后,又修改持久化对象的属性,这会使得session在清理缓存时,额外执行sql中update语句。4、修改数据修改数据操作的方法名称为updatet。在该方法中,以t对象类型为参数,执行session类中的update方法,实现修改数据的操作。具体实现代码如下:public boolean updatet(t t) session session = sessionfactory.opensession();try tx = session.begintransaction();session.update(t);mit(); catch (exception e) system.out.println(e);return false; finally session.close();return true;5、查询多条数据查询多组数据的方法名称为querylist。该方法以参数string类型对象hql为条件,调用session类中的createquery()来实现查询功能。具体实现代码如下:public list querylist(string hql) session = sessionfactory.opensession();tx = session.begintransaction();list list = null;try query query = session.createquery(hql);list = query.list(); catch (exception e) system.out.println(e);mit();session.close();return list;6、查询单条数据查询单条数据的方法名称为queryfrom。该方法以参数string类型对象hql为条件,调用session类中的createquery()来实现查询功能。并将查询结果返回给query类的query对象,最后通过该对象调用uniqueresult方法,实现查询单条数据的方法。具体实现代码如下:public t queryfrom(string hql) t t = null;session = sessionfactory.opensession();tx = session.begintransaction();try query query = session.createquery(hql);t = (t) query.uniqueresult(); catch (exception e) mit();session.close();return t;7、在查询结果中返回指定数据在查询结果中返回指定数据的方法名称为querylist。该方法存在三个参数:hql参数对象表示查询的hql语句;shownumber参数变量表示查询的条数;beginnumber参数变量表示查询的起始位置数。具体实现代码如下:public list querylist(string hql, int shownumber, int beginnumber) session = sessionfactory.opensession();tx = session.begintransaction();list list = null;try query query = session.createquery(hql);query.setmaxresults(shownumber);query.setfirstresult(beginnumber);list = query.list(); catch (exception e) mit();session.close();return list;5.3界面设计5.3.1 主界面模块设计访问博客程序时,首先进入博客主界面。在该页面包括的功能是导航区、推荐博客、推荐文章、热门博客、热门文章、主页信息及其版权信息区。在本系统中,首页操作的struts2实现类名称为blogmainaction

温馨提示

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

评论

0/150

提交评论