《社交网站大学论文.doc》由会员分享,可在线阅读,更多相关《社交网站大学论文.doc(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、河北农业大学本科毕业论文(设计)题 目: 社交网站 摘 要所谓社交网站,全称Social Networking Services,即社会性网络服务,专指旨在帮助人们建立社会性网络的互联网应用服务。也指社会现有已成熟普及的信息载体,如短信SMS服务。本论文从学习、探讨的角度,介绍了关于社交网站的基本概念和国内外社交网站的发展状况,然后从需求分析、开发技术、数据库设计以及实现上分别叙述了原理及实现方案。本文通过自身了解和查阅大量资料进行编写,并且各种相关的技术理论贯穿论文。最后总结了本次毕业设计中我的收获和不足之处,但是系统中仍然存在一些地方需要完善。关键字 : Spring ibatis 社交网
2、站AbstractThe so-called social networking sites, the full name of Social Networking Services, the social networking services, specifically designed to help people establish a social network of Internet application services. Also refers to the information carrier of social existing mature popular, suc
3、h as the SMS message service.本论文从学习、探讨的角度,介绍了关于社交网站的基本概念和国内外社交网站的发展状况,然后从需求分析、开发技术、数据库设计以及实现上分别叙述了原理及实现方案,进。本文通过自身了解和查阅大量资料进行编写,并且各种相关的技术理论贯穿论文。最后总结了本次毕业设计中我的收获和不足之处,但是系统中仍然存在一些地方需要完善。In this paper, from the study, on the point of view, introduces the development status of the social networking site
4、 basic concept and the domestic and foreign social networking sites, and then from the needs analysis, development technology, database design and realization are introduced. Principle and realization scheme, into the. In this paper, through their own understanding and access to large amounts of dat
5、a for the preparation, and a variety of related technology theory throughout the paper. Finally summarizes the graduation of harvest and my lack of design, but the system still exist in some places need to improve.Keywords : Spring ibatis social-network目 录1 绪 论11.1 研究背景及意义11.2 设计定义和简介11.3 国内国外发展状况分析
6、11.3.1 国内发展状况分析11.3.2 国外发展状况分析21.4 论文各章内容的介绍22 需求分析32.1 功能分析32.2 设计原则32.3 可行性分析32.3.1 可行性分析的目的32.3.2 技术可行性分析32.3.3 操作可行性分析42.3.4 系统开发及运行环境43 系统实现主要技术详解53.1 Javascript技术53.1.1 jQuery框架53.1.3 ajax技术53.1.4 JSON技术63.2 SSI框架63.2.1 springMVC框架技术73.2.2 ibatis框架技术73.3 Tomcat容器74 分层设计84.1 MVC设计模式84.2 系统分层设计8
7、5 数据库设计105.1 数据库表设计106 详细模块设计136.1 用户模块设计136.1.1 登录模块流程图136.1.2 用户注册模块流程图146.1.3 发表moment模块流程图146.1.4 评论moment模块流程图156.1.5 关注功能模块流程图156.1.6 编辑个人信息模块流程图156.2 管理模块设计166.2.1 用户管理模块流程图167 测试运行177.1 功能测试17总结21致谢22参考文献231 绪 论1.1 研究背景及意义当代互联网业迅猛发展,诸如各种商业型网站、互动交流网站、企业内部的管理信息系统、BBS论坛等都是十分典型的应用。这种开发模式被称作浏览器/服
8、务器模式,用户通过访问网页提交相应的处理请求,服务器会解析用户的请求,调用相应的业务逻辑代码进行处理,并将处理结果以网页的形式返回给用户,呈现在用户的浏览器上。 社交网站又称SNS(Social Networking Services)是一种刚刚兴起的网站类型,专指旨在帮助人们建立社会性网络的互联网应用服务。所谓的社会性网络,也被称作为人际关系网,在现实生活中人与人之间的交际通常是依靠传统的信息沟通媒介来维系,例如电话、邮件之类,这种模式的局限性是个体与个体之间必须有一定的关系基础,仅仅在熟识的人群之间进行交流。显然这种交际模式已经越来越无法满足当今社会个体发展的要求。为了拓展个体的社会性网络
9、即社交范围,使得原本并不相识但又有意愿彼此结识的个体之间通过有效的途径建立起某种联系,诞生了SNS型网站。社交网站一经推出就取得了迅猛的发展,此类型网站一般是通过某种方式进行社交拓展,比如根据相同话题进行凝聚、根据爱好进行凝聚、根据学习经历进行凝聚等,都被纳入了SNS的范畴。社交网站的出现在某种程度上丰富了当今社会中个体交际的范围,把原本狭小的交友圈,即通常的熟人与熟人之间,或者熟人与熟人的熟人之间的这种模式拓展为通过网络服务与身处世界各地的拥有不同背景的个体进行交流。在信息化建设高速发展的今天,这种社会性网络显然更符合当代人的自身需要。然而社会交际的基础必须建立在诚信的基础上,而网络的虚拟性
10、恰恰是这种交际模式的薄弱之处,所以如何设计和开发适应于当今社会个体的社会性网络服务已然成为一项倍受关注的课题。1.2 设计定义和简介本系统定位是一个状态分享的社交平台,并分享自己所在的位置。区别于传统博客系统,它告别了单一的用写文章写日志的方式,而是通过少量文字向人们表达自己的心情、见闻和思想,使得信息分享更及时化,而且借助互联网可以更方便快捷的拥有自己的朋友圈。本课题的研究正是追求设计和实现一个人性化、个性化的社交网站系统。本系统从实现上包括管理模块和普通用户模块两大部分。1.3 国内国外发展状况分析1.3.1 国内发展状况分析从市场发展的格局来看,四大类SNS网站发展仍然非常迅速,成为目前
11、带动SNS市场的主流力量。一是以服务校园学生的校园交友为主的SNS网站,如校内网、占座网、QQ校友等,这类网站起步较早,并以占据最具活力的大学生群体作为核心竞争优势;二是以休闲娱乐为主的SNS网站,如开心网、等,这类网站2008年迅速成长成为年轻白领娱乐休闲的新宠;三是以商务沟通和交友为主的SNS网站,如若邻网、海内网等,这类网站在我国进步较慢,但发展较为稳定;四是以婚恋交友为主的SNS网站,如百合网、嫁我网等,这类网站也颇有市场且较受欢迎。1.3.2 国外发展状况分析相比国内,国外在社交站点领域一直走在领先地位,并且在国内有非常多社教站点都是直接借鉴和参考国外的一些成功的著名社交网站的案例和
12、设计思想。国外非常著名的社交网站有Facebook,Twitter,google+,LinkedIn 等,处于蓬勃发展的阶段,人们越来越多的将时间投入在这些平台之上。在保留早期的传统功能外,加入具有优秀用户体验的新的元素。这些新的功能无疑会吸引更多的个体注册用户,拓展网站的使用人群。1.4 论文各章内容的介绍论文全文共分为六章 第一章 绪论。这一章介绍了本论文的研究背景和意义,课题的具体介绍,以及国内外对该课题的研究及发展状况。 第二章 需求分析。这一章简单分析了系统的功能需求,并从可行性上进行分析,提出设计原则并选取合适的开发环境。 第三章 系统主要实现技术。这一章介绍了该系统使用的前台以及
13、后台技术方案。 第四章 分层设计。这一章阐明系统所应用的分层架构模式,以及分层化设计、模块化设计的思路。最后对系统文件目录做基本说明。 第五章 数据库设计。这一章介绍了系统后台所设计的具体的数据库表结构。 第六章 详细模块设计。这一章将系统分成两个部分,并介绍其具体实现,画出流程图,贴出核心代码。1) 第七章 测试运行。这一章对系统的测试进行说明,并展示测试时的截图,保证系统的正常运行。232 需求分析2.1 功能分析本系统的定位是一个状态信息分享的社交网站,并可以分享自己所在的位置。不同于传统博客,它弃用了单一的用写文章或日志的方式,而是通过简短的文字向人们表达自己的心情、见闻和思想,使得信
14、息分享更人性化和丰富多彩,而且借助互联网可以更方便快捷的拥有自己的朋友圈。本论文的研究正是追求设计和实现一个人性化、个性化的社交站点。该系统从实现上包括管理模块和用户模块两部分。其中管理模块实现了对普通用户的增删改查等功能。而普通用户模块,则包括用户的登录注册,编辑个人信息,登陆后可浏览、发布和删除自己的状态信息,关注或取消关注其他用户,以及被其他用户关注或取消关注,对其他用户发表的信息进行浏览查看和评论,查看用户的状态、关注者以及正在关注人的数量信息等功能。2.2 设计原则用户是系统的最终使用者和评价者,所以在系统的开发设计的过程中,首先要从用户需求和体验出发,同时还要兼顾设计的合理性。尽可
15、能选取简便可靠的解决方案,保证用户操作简便,界面友好;保证系统稳定、高效、安全;在结构上应采用分层设计模式,减少不同层次间的耦合度,保证具有良好的可扩展性,方便未来的功能扩展和维护。2.3 可行性分析2.3.1 可行性分析的目的可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决,可行性研究的目的不是解决问题,而是确定问题是否值得去解。要达到这样的目的,应当进行客观分析。同时要分析几种主要的可能性方案的利弊,从而判断原定的系统目标和规模是否能实现,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。因此,可行性研究的实质是要进行一次大大压缩简化了的系统分析和设计的过程
16、。2.3.2 技术可行性分析本系统所需的开发技术手段包括javascript和Java语言,数据库为Mysql。分别应用他们的相关框架进行实现。1) JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,更重要的它是系统前台和后台进行数据交互不可缺少的。此外,它的强大之处在于,存在很多开源的javascript类库,比如jQuery,可以帮助我们在实现同样功能的同时,简化代码操作和浏览器兼容性。2) 本系统是基于面向对象思想的JAVA语言中JavaEE平台进行编写,JavaEE平台具有以下
17、优点:首先,开源性质的平台拥有大量出色的框架体系,保证程序员高质量的完成开发。并且开发人员可以分工对系统不同模块进行开发,大大的提高了开发的效率。由于JavaEE基于Java编程语言,具有良好的跨平台性,它提供了编写一次,随处运行的可移植性,基于JavaEE的应用程序不依赖任何特定操作系统、中间件或硬件。其次,由于各模块的代码层次化清晰,相互之间耦合度极小,因而具有良好的可重用性,当然也便于系统日后的维护和升级。此外,JavaEE的高性能、安全性等特质更加赢得了开发行业广泛的认可度。3) 系统选用Mysql数据库进行数据持久化MySQL是现在流行的关系数据库中其中的一种,相比其它的数据库管理系
18、统(DBMS)来说,MySQL具有小巧、功能齐全、查询迅捷等优点,关键的是它是免费的,可以在Internet上免费下载到,并可免费使用,对于一般中小型,即便是大型应用也同样能够胜任。2.3.3 操作可行性分析本系统应具备友好的用户界面,使用方便、快捷,操作简单且易于维护,易于被用户接受,用户只需熟练操作计算机,和对此系统使用做简单的了解即可方便使用,而且使用此系统可以大大促进人们之间的交流和沟通,从操作方面看,此系统的开发是可行的。在法律上并未侵害他人权利,无须承担任何法律责任。通过可行性分析,本系统在无论从技术上还是操作上都是完全可以实现的。我计划利用javaee eclipse开发工具,通
19、过运用Javascript和JavaEE相关技术:javascript、jquery、jsp、springmvc、spring、ibatis、css等主要技术完成毕业设计,并在此基础上不断的测试、完善和补充。2.3.4 系统开发及运行环境1) 服务器端 :操作系统 : windows 7 x32开发环境 : Tomcat 6.0.36、eclipse3.72、JDK 1.6、MySQL 5.5js类库支持 : jQuery 1.8.32) 客户端 :浏览器 : 火狐浏览器、谷歌浏览器、IE系列浏览器 (为了更好的用户体验,请尽量选用高版本浏览器)3 系统实现主要技术详解3.1 Javascri
20、pt技术JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。也是一种广泛用于客户端Web开发的脚本语言,更重要的它是系统前台和后台进行数据交互不可缺少的,常用来给HTML网页添加动态功能,像表单验证、网页特效、甚至一些项目中JS会在前台处理大量的业务数据供后台进一步处理操作。此外,存在很多开源的javascript类库和框架,来帮助我们在实现同样功能的同时,简化代码操作和浏览器兼容性。3.1.1 jQuery框架jQuery是一个兼容多浏览器的javascript类库,核心理念是write less,do more(写的更少,做的更多)。jQuery是在2006年1月
21、由美国人John Resig在纽约的barcamp发布,吸引了来自世界各地的众多JavaScript高手加入,现在由Dave Methvin率领团队进行开发。如今,jQuery已经成为最流行的javascript库,在世界前10000个访问最多的网站中,有超过55%在使用jQuery。jQuery是免费、开源的,使用MIT许可协议。jQuery的语法设计可以使开发者更加便捷,例如操作文档对象、选择DOM元素、创建动画效果、事件处理、使用Ajax以及其他功能。除此以外,jQuery提供API让开发者编写插件。其模块化的使用方式使开发者可以很轻松的开发出功能强大的静态或动态网页以及网络应用程序。这
22、使开发人员可以对底层交互与动画、高级效果和高级主题化的组件进行抽象化。使用方法是在HTML文档的标签中插入对jQuery类库的引用。3.1.2 Bootstrap框架Bootstrap是Twitter推出的一个开源的用于前端开发的工具包。它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。
23、Bootstrap是基于jQuery框架开发的,它在jQuery框架的基础上进行了更为个性化和人性化的完善,形成一套自己独有的网站风格,并兼容大部分jQuery插件3.1.3 ajax技术AJAX即Asynchronous JavaScript and XML(异步JavaScript和XML),AJAX并非缩写词,而是由Jesse James Gaiiett创造的名词,是指一种创建交互式网页应用的网页开发技术。AJAX不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术。通过 AJAX,JavaScript可使用XMLHttpRequest对象来直接与服务器
24、进行通信。通过这个对象,JavaScript可在不重载页面的情况与Web服务器异步交换数据。AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。AJAX使因特网应用程序更小、更快,更友好。它是一种独立于 Web 服务器软件的浏览器技术,并被所有的主流浏览器支持。AJAX 应用程序独立于浏览器和平台。3.1.4 JSON技术JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于JavaScript的一个子集。JSON采用完全独立于语言的文本格式,如今越来越多的项目中以JSON
25、作为前台与后台交互数据的基本格式,已经成了业内的规范。json简单说就是javascript中的对象和数组,所以它有对象和数组2种结构,通过这两种结构可以表示各种复杂的结构,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递,或者在异步请求中将字符串从 Web 客户机传递给服务器端程序。再有,服务器端也常将后台处理完成后的数据做成符合JSON规范的字符串,并传递给前台进行处理等。JSON的两种结构:1、 对象:对象是一个无序的“名称/值对”集合。一个对象以“”(左括号)开始,“”(右括号)结束。每个“名称”后跟一个“:”(冒号);“名称/值
26、 对”之间使用“,”(逗号)分隔。对象在javescript中表示为“”扩起来的内容,数据结构为key : value,key : value,.的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为对象.key,由此获取属性值,这个属性值的类型可以是数字、字符串、数组、对象几种。2、 数组:数组是值(value)的有序集合。一个数组以“”(左中括号)开始,“”(右中括号)结束。值之间使用“,”(逗号)分隔。数组在javascript中是中括号“”扩起来的内容,数据结构为 java,javascript,ssh,.,取值方式和所有语言中一样
27、,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。3.2 SSI框架SSI为springMVC+ spring + ibatis的一个集成框架,是目前较流行的基于Java语言开发的Web应用程序开源框架。集成SSI框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好的Web应用程序。其中使用springMVC作为系统的整体基础架构,负责MVC的分离,控制业务跳转,利用ibatis框架对持久层提供支持,而Spring管理springMVC和ibatis。即用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本
28、的Java对象,然后编写基本的DAO接口,并给出ibatis的DAO实现,采用ibatis架构实现的DAO类来完成Java类与数据库之间的交互,最后由Spring做管理,管理springMVC和ibatis。3.2.1 springMVC框架技术Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是
29、高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和POI。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。3.2.2 ibatis框架技术ibatis是一个开源的对象关系映射(ORM)框架,是一种Java语言下的对象关系映射解决方案。它对JDBC进行了轻量级的对象封装,为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。它的设计目标是将软件开发人员从大量相同的数据持久层相关编程工作中解放出来。无论是从设计草案还是从一个遗留数据库开始
30、,开发人员都以采用ibatis。ibatis把sql语句从Java源程序中独立出来,放在单独的XML文件中编写,给程序的维护带来了很大便利。ibatis封装了底层JDBC API的调用细节,并能自动将结果集转换成Java Bean对象,大大简化了Java数据库编程的重复工作。简单易于学习,易于使用, 非常实用。3.2.3 Spring 框架技术Spring 是一个开源框架,是为了解决企业应用程序开发复杂性由Rod Johnson创建的。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开
31、发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。3.3 Tomcat容器Tomcat 服务器是一个免费的开源的轻量级Web 应用服务器,是开发和调试JSP 程序的首选。它是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定
32、,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。3.4 JavaBean组件技术JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自身机制发现和操作这些JavaBean 的属性。用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Ser
33、vlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。JavaBean可分为两种:一种是有用户界面(UI,User Interface)的JavaBean;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。JSP通常访问的是后一种JavaBean。4 分层设计4.1 MVC设计模式选择一种优秀的开发方案和设计模式是至关重要的,它可以使开发顺利进行,并对后期的工作也有着莫大的好处,设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分
34、类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。MVC全名是Model View Controller,是模型(model)视图(view)控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界
35、面的结构中。MVC设计模式,通过组织代码,实现了其相互分离的目的,大大降低了业务逻辑层和数据显示层的耦合度。它具有较高的低耦合性、部件重用性、生命周期低成本、维护性高、安全可靠等特性。4.2 系统分层设计在软件体系架构设计中,最经典的便是三层架构模式。三层架构即表现层、业务逻辑层和数据访问层。1) 表示层位于OSI分层结构的第六层,它的主要作用之一是为异种机通信提供一种公共语言,以便能进行互操作。这种类型的服务之所以需要,是因为不同的计算机体系结构使用的数据表示法不同。2) 业务逻辑层(Business Logic Layer)是系统架构中体现核心价值的部分,用于做一些有效性验证的工作,以更好
36、的保证程序运行的健壮性。如完成数据添加、修改和查询业务等;不允许指定的文本框中输入空字符串,数据格式是否正确以及数据类型验证;用户权限的合法性判断等;通过以上的诸多判断以决定是否将操作继续向后传递,尽量保证程序的正常运行。3) 数据访问层:又称为DAL层,有时候也称为是持久层,其功能主要是负责数据库的访问。简单的说法就是实现对数据表的Select(查询),Insert(插入),Update(更新),Delete(删除)等操作。如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。数据访问层,简单的说,就是通过DAL对数据库进行的SQL语句等操作。本系统采用
37、SSI三大框架技术和MVC分层模式相结合的架构模式,充分体现了两者的技术优点。在此模式中通过JSP来表现页面。通过service层来完成大量的事务处理。 Action层充当一个控制者的角色,并负责向客户发送请求。业务逻辑层创建JSP所需要的Bean和对象,然后根据用户的请求行为,决定将哪个JSP页面发送给客户。本系统就是采用这种“三层架构”方式,将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。表现层是传统的JSP技术。中间层采用的是流行的Spring + ibatis,为了将控制层与业务逻辑层分离,又细分为以
38、下几种。1)Web层,就是MVC模式里面的“C”(controller),负责控制业务逻辑层与表现层的交互,调用业务逻辑层,并将业务数据返回给表现层作组织表现,该系统的MVC框架采用Struts。2)Service层(就是业务逻辑层),负责实现业务逻辑。业务逻辑层以DAO层为基础,通过对DAO组件的正面模式包装,完成系统所要求的业务逻辑。3)DAO层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。4)Entity,持久化对象。通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以面向对象方式操作数据库,该系统采用ibatis作为ORM框架。Spring的作用贯穿了整个
39、中间层,将Web层、Service层、DAO层及Bean无缝整合。一个良好的框架可以让开发人员减轻重新建立解决复杂问题方案的负担和精力;它可以被扩展以进行内部的定制化;并且有强大的用户社区来支持它。5 数据库设计管理员5.1 数据库表设计时间作者内容用户id状态发表用户用户名位置密码生日管理性别关注管理用户id评论用户id时间内容状态id1)用户基本资料表用户基本资料表中存放的是用户的基本信息,包含比如用户名,密码,邮箱,生日等。表1 用户表-user字段名称数据类型可否为空约束条件说明userIdBIGINT(20)NOT NULL主键、自增用户IDusernameVARCHAR(255)N
40、OT NULLUNIQUE用户名passwordVARCHAR(255)NOT NULL无用户密码emailVARCHAR(15)NOT NULLUNIQUE注册邮箱birthdayDATENULL无用户生日genderVARCHAR(255)NULL无用户性别addressVARCHAR(255)NULL无用户地址regTimeDATETIMENULL无用户注册时间mottoVARCHAR(255)NULL无用户个性签名adminBITNULL无是否为admindata_stateintNULL无数据有效状态2)moment信息表Moment信息表主要存储用户发表的状态的详细信息,包括比如主
41、键字段、发表人、状态内容以及发表时间等。表2 moment表-moment字段名称数据类型可否为空约束条件说明moment_idBIGINT(20)NOT NULL主键、自增Moment IDuser_idBIGINT(20)NULL外键用户IDcontentVARCHAR(255)NULL无Moment内容image_pathVARCHAR(255)NULL无图片路径locationVARCHAR(255)NULL无发表地点postTimeDATETIMENULL无发表时间data_stateintNULL无数据有效状态3)评论信息表评论信息表记录着某些用户对某一状态的评论信息,包括评论人,
42、评论内容,评论时间等基本信息。表3 评论表-comment字段名称数据类型可否为空约束条件说明commentIdBIGINT(20)NOT NULL主键、自增评论IDmomentIdBIGINT(20)NULL外键Moment IDuserIdBIGINT(20)NULL外键用户IDcommentVARCHAR(255)NULL无评论内容commentTimeDATETIMENULL无评论时间data_stateintNULL无数据有效状态4)关注关系表关注关系表记录着系统中两个用户的关系。表4 关注关系表-follow字段名称数据类型可否为空约束条件说明followIdBIGINT(20)N
43、OT NULL主键、自增关注关系IDuserIdBIGINT(20)NOT NULL外键用户IDfollowerIdBIGINT(20)NOT NULL外键关注者IDdata_stateintNULL无数据有效状态5)like表赞表记录着用户对状态的赞。表4 like表-like字段名称数据类型可否为空约束条件说明like_idBIGINT(20)NOT NULL主键、自增关注关系IDuser_idBIGINT(20)NOT NULL外键用户IDmoment_idBIGINT(20)NOT NULL外键Moment IDdata_stateintNULL无数据有效状态6 详细模块设计个人信息注
44、册信息注册6.1 用户模块设计个人信息未注册用户密码已注册用户个人信息修改个人资料登录用户信息关注信息加关注评论微博赞微博查看微博列表评论信息发微博微博信息信息6.1.1 登录模块流程图验证通过输入邮箱和密码登录系统验证成功登录系统验 证 失 败图6-1 用户登录模块6.1.2 用户注册模块流程图验证通过注册用户输入其详细的用户信息验证成功完成注册验 证 失 败图6-2 用户注册模块6.1.3 发表moment模块流程图输入moment的内容、图片等信息并提交Web层处理:负责发表moment的Action接收请求并处理发送请求业务逻辑层:通过调用Dao层中负责插入数据的操作方法数据库Dao层
45、:与数据库交互将发表的moment插入显示发表的moment跳转回显图6-3 用户发表moment流程图6.1.4 评论moment模块流程图点击进入具体moment进行评论输入评论信息并提交Web层处理:添加评论的Action接收请求并处理ajax发送评论请求业务逻辑层:通过调用Dao层与数据库交互将评论信息插入数据库将评论回显到表示层页面图6-4 用户评论流程图6.1.5 关注功能模块流程图web层处理:负责关注操作的Action接收请求并处理ajax发送请求,请求数据为两个相关用户的id业务逻辑层:通过调用Dao层中负责插入数据的操作方法数据库Dao层:与数据库交互将关注双方id插入数据库点击“关注”按钮回显图6-5 关注功能流程图6.1.6 编辑个人信息模块流程图读取并显示用户基本信息,编辑需要更改的信息Web层处理:负责编辑个人信息的Action接收请求并处理发送请求业务逻辑层:通过调用Dao层中负责更新数据的操作方法数据库Dao层:与数据库交互将编辑的信息更新到数据库显示成功编辑后的跳转页面跳转图6-6 编辑个人信息功能流程图6.2 管理模块设计6.2.1 用户管理模块流程图web层处理