《微博系统的设计与实现.pdf》由会员分享,可在线阅读,更多相关《微博系统的设计与实现.pdf(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-本科毕业论文(设计本科毕业论文(设计)(20132013 届本科毕业生届本科毕业生)题题目目:微博系统的设计与实现微博系统的设计与实现学学生生姓姓名名:学学生生学学号号:学学院院名名称称:软软件件学学院院专专业业名名称称:计计算算机机科科学学与与技技术术指指导导教教师师:二零一三年五月二零一三年五月-【摘【摘 要】要】随着社会的进步,时代的发展,微博的使用在网上已经非常广泛,微博系统对用户而言,除了方便之外,还是与朋友之间沟通交流的桥梁.该微博系统的设计与实现正是适应了这种要求.本系统采用Jva语言,yQ数据库以及Srts、Hiberate、Spring技术开发,以Elipse作为开发工具进
2、行研发.其功能主要包括系统登录和注册、我的微博模块、个人中心模块、最新动态模块、留言板模块以及帮助中心六大部分。其中在我的微博模块中有查看我的微博和查看我的好友功能,还有更多设置功能;在个人中心模块中具体分为完善资料功能和对密码的操作;在最新动态模块中可以发表微博和查看历史微博内容;在留言板模块中可以发表留言和查看历史留言信息等;而帮助模块中主要是对一些常见问题进行解答。本论文完整介绍了系统的功能和开发的过程,重点说明了设计的重点与设计思想,详细阐述了系统开发的需求分析以及相关技术的介绍。【关键字关键字】微博系统,Jav,tru,erne-Desin nIplementation OfroBl
3、og Syem【AbAbt tactact】Wit the prgress osocet,the develpment othtmes MroBlog onlie h ben vey welyuse,MBlg Sstf uer,i adto to covenenc,or bridge of mmunicaioneten ies。e Micol ytem is adapted o thedeig andimplementato o the requirements.The system seshe ava langue,ySQLand Struts,Hibernte,pring technl,E
4、lips develpmenttl It mainfcion icluesiprts of sstem ogin an egisratin,y Microlog moule,personal center odue,recent nwodul,messageboard moule and elp cnter module My MicrBg modue inludemessagelet,fied selet,add,delte,and ore ettingsncion;psonal eter modulencluespasword odfy ad uy fuctions;rct news mo
5、dleiludes inormaon ad,dlee,modfy nd quencios;ssg boar moule nclue meaes a,deete,mifynd quy fnctios;in tehelpntroule,st answ som cmon quesions。This theisntodes te ssems funtionsand produre of develome copley,daresthe poinof dsnand te tnking fesignimortntl a sttes the qiremntanlyssofthe syste develome
6、nti al.【KeywordKeyword】icroBgSste,Java,Strt,Hiernae-目目录录第一章 绪论错误错误!未定义书签。未定义书签。1.1 微博的研究背景.错误错误!未定义书签。未定义书签。2国内外研究现状错误错误!未定义书签。未定义书签。1。3本文结构.错误错误!未定义书签。未定义书签。第二章 相关技术介绍错误错误!未定义书签。未定义书签。1 JAVA 语言概述错误错误!未定义书签。未定义书签。2.JAA E 平台技术介绍.错误错误!未定义书签。未定义书签。2。3 QL 数据库简介.14。4 VC 设计模式简介16第三章 系统需求分析.错误错误!未定义书签。未定义书
7、签。3.1系统总体需求分析.错误错误!未定义书签。未定义书签。3。2 系统开发设计思想.203。系统功能结构.错误错误!未定义书签。未定义书签。4系统的操作过程错误错误!未定义书签。未定义书签。3.5系统总体结构图.错误错误!未定义书签。未定义书签。6 数据库的概念.错误错误!未定义书签。未定义书签。37 数据库-R 图错误错误!未定义书签。未定义书签。3。8 系统界面设计.错误错误!未定义书签。未定义书签。第四章 详细设计错误错误!未定义书签。未定义书签。4。1 数据库的选择错误错误!未定义书签。未定义书签。4。2 数据库表的描述错误错误!未定义书签。未定义书签。4系统开发环境介绍错误错误!
8、未定义书签。未定义书签。第五章 系统实现错误错误!未定义书签。未定义书签。51系统登录和注册.错误错误!未定义书签。未定义书签。5.2 添加留言信息.错误错误!未定义书签。未定义书签。-5。3 删除好友功能.错误错误!未定义书签。未定义书签。4修改个人信息.错误错误!未定义书签。未定义书签。5.5查询留言信息.错误错误!未定义书签。未定义书签。6其他功能错误错误!未定义书签。未定义书签。第六章 系统测试及维护.错误错误!未定义书签。未定义书签。6。1系统测试错误错误!未定义书签。未定义书签。.2 测试用例.错误错误!未定义书签。未定义书签。6.系统维护.错误错误!未定义书签。未定义书签。第七章
9、 总结与展望.错误错误!未定义书签。未定义书签。总结错误错误!未定义书签。未定义书签。7。2 展望.错误错误!未定义书签。未定义书签。后记错误错误!未定义书签。未定义书签。参考文献错误错误!未定义书签。未定义书签。-第一章1.1微博的研究背景绪论微博,就是微博客(McroBlo)的简称,是一个基于用户关系的信息分享、传播以及获取的平台,用户可以通过 WEB、WAP以及各种客户端组建个人社区,以 10 字左右的文字更新信息,并实现即时分享。美国的witte是最早也是最著名的微博,根据一些相关的公开的数据,截至 201年 1 月份,该产品在全球已经拥有 7500 万注册用户。在 200年月份,中国
10、最大的门户网站新浪网推出“新浪微博”内测版,成为门户网站中第一家提供微博服务的网站,从此微博正式进入中文上网主流人群的视野。微博是一种通过关注机制分享简短实时信息的广播式的社交网络平台。陈永东,国内知名新媒体领域研究学者,他在国内率先给出了微博的定义。其中有五方面的理解:1、关注机制:分为单向和双向两种;2、内容简短:通常为40 字;、实时信息:最新的实时信息;4、广播式:公开的信息,谁都可以浏览以及转播;、社交网络平台:把微博归为社交网络。微博为广大用户提供了这样一个平台,你既可以以观众的身份在微博上浏览你感兴趣的信息,也可以以发布者的身份在微博上发布内容供别人浏览。发布的内容一般较短,通常
11、为0 字的限制,由此命名为微博.当然,也可以发布图片,分享歌曲、视频等。微博有两方面的含义:首先,对于一些强调版面布置的博客来说,微博主要是由简单的只言片语组成,从这个角度来说,微博对用户的技术要求门槛很低,而且与博客相比,对语言的编排组织的要求没那么高。第二,微博浏览非常方便,由于微博开通的多种 API,所以用户可以通过手机、网络等方式来即时更新自己的个人信息,深受广大用户的喜爱。微博的特点:信息获取具有很强的自主性、选择性;微博宣传的影响力具有很大弹性,与内容质量高度相关;内容短小精悍。微博的内容限定为40 字左右,内容简短,不需长篇大论,门槛较低;信息共享便捷迅速,这也是微博最大的特点。
12、1。国内外研究现状1.。1微博在国外的发展史埃文威廉姆斯(Ean Wiliams)是博客技术先驱blgge的创始人,他在2006年 3 月创建的新兴公司 Obvios 推出了大微博服务.在最初阶段,这项服务的功能很不完善,只是用于向好友的手机发送文本信息。wier 是由 bgger 的创始人威廉姆斯(vn Williams)在 2006 年 3 月推出的,其英文的原意为小鸟的叽叽喳喳声,此时功能有些改进,用户可以使用数百种工具更新信息。we的出现把世人的眼光引入了一个叫微博的小小世界里。截至007 年 5 月,国际间计算总共有 111个类似 Twt-er 的网站。然而,最受人关注的仍是 Twi
13、tter,在 2007 年,在得克萨斯州奥斯汀举办的南非西南会议中赢得了部落格类的网站奖。Plurk 和 Jaik是 Titte的主要竞争对手。由于Titter 的发展前景,国内一些人开始蠢蠢欲动。从校内网起家的王兴,在 2007 年月创建了饭否网。而作为一个拥有4.1 亿 QQ 用户的企业腾讯,看着用户对随时随地发布自己状态的需求愈发强烈后,在 207 年月 13 日腾讯滔滔面世。但事情没有预期发展的好,witr 建立的“微型王国不是在短时间内掘出黄金的浅矿,所以国内微博企业目前尚处于慢热的状态。国内微博不约而同地将现在的目光放在了产品调整以及服务完善上,在还没有办法吸引到风险投资的眼光之前
14、,他们最需要做的可能是如何靠自己的能力继续活下去.1。2.2 微博在国内的现状及发展趋势中国第一家带有微博色彩的饭否网于2007年开张开始,到2009年,微博这个新词汇以摧枯拉朽的姿态扫荡世界,不久便成为全世界最流行的词汇.国内大批老牌微博产品(饭否、腾讯滔滔等)在 2009 年 7 月中旬开始停止运营,一些新产品开始进入人们的视野:6月份开放的 Fllow,7 月份开放的 91,8 月份开放的新浪微博等。在 201年,国内微博开始崛起。四大门户网站均开设微博。根据一些相关公开数据显示,截至 2010 年 1 月份,在全球范围内,该产品已经拥有 750万注册用户.2011 年上半年,我国微博用
15、户迅速增长,其数量从331 万增至 1。95 亿,半年增幅高达 208。9。微博在网民中的普及率从 1.增至0。从 2010 年底至今,手机微博在网民中的使用率比例从 1.%上升到 34.-图 1-1 中国微博市场用户周覆盖人数图 12用户访问次数及有效浏览时间集中度至今,因为新浪微博抢占了先机,其用户数已经超过 1 亿,再加上其在整体的战略执行上也比较彻底到位,所以获得了现在的地位。仅仅两年时间,新浪微博就为新浪创造了几十亿美金的巨额收入.而腾讯微博作为另一个微博巨头,也发展迅猛.其拥有近亿的Q 注册用户,其中 2-亿左右是活跃用户。这些人受潮流趋势的影响很快开通腾讯微博。另外其作为重要的推
16、广渠道。企业用户通过注册腾讯官方微博,能够迅速的扩大企业的知名度.高校教育平台也通过微博来推动了中国教育事业信息化发展的步伐.互联网实验室认为,我国微博将向工具化、细分化、移动化和开放化等方向发展。如下图所示.图3 发展方向研究图现在,已经有很多微博服务商对微博网站进行了专业细分,如和讯网推出的财经微博,搜房网推出的房地产专业微博等.随着这种细分与竞争,细分化的趋势将更加明显.1。2.中外微博的文化差异在国内,关系社会这一本质属性是微博抓住的文化特征,中国人社会认同的结构建立在一套强有力的关系体系之中,群体化和联系化是其文化内核.一个人社会地位的高低取决于社会关系的强弱。关系是实现权力重构的核
17、心的一种资本,因此,微博的发展过程,也是新权力者关系资本积累的过程。在国外,微博Titter 的产品初衷正如单词 Twitter的英文原义-鸟儿叽叽喳喳的叫声。它抓住了美国人善于交谈的个性、渴望表达和信息分享的特征,正如一个充斥了个人琐碎的思索、片段化的情感的窗口。1.3 本文结构第 1 章 绪论,介绍微博的研究背景,国内外的发展史及论文的结构等。第章相关技术介绍,对微博的设计和实现过程中用到的开发语言、平台技术以及框架技术进行介绍,主要阐述了 JAVA 语言、JAA EE企业级应用、三大框架、MySQL、M模式。-第章 系统需求分析,对系统的总需求进行分析,并对我的微博模块、个人中心模块、最
18、新动态模块、留言板模块、帮助中心模块的需求进行的分析。第章详细设计,在需求分析的基础上,进行总体设计,并对我的微博模块、个人中心模块、最新动态模块、留言板模块进行详细设计,进行数据库设计,对并数据关系进行说明.第 5 章 系统实现,系统总体实现部分主要论述一些功能子模块的实现,例如系统登录和注册、添加留言信息、删除好友功能、修改个人信息等.第 6 章系统测试及维护,包括对测试原理及常用软件测试方法的介绍,针对登录部分设计测试用例,并对测试的结果如何进行说明。第7章 总结与展望,总结微博系统的研究情况,以及在设计和实现过程中的优点以及本系统还需要进行改进的地方。-第二章。JAVA 语言概述相关技
19、术介绍JAVA 最初被命名为,这类语言可以来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题,其目标设定在家用电器等小型系统的编程语言,因为这些智能化家电的市场需求没有 Sun 预期的高,所以放弃了该项计划。但是随着互联网的发展,Su看到了 Oa在计算机网络上的广阔应用前景,所以在 Oak 几近失败之时改造了Oak,并且正式发布,命名为“Java”.Jva 编程语言的风格与、C+语言十分类似。不同的是:Jav是一个纯的面向对象的程序设计语言,av舍弃了 C+语言中容易引起错误的指针(用引用来取代)、多重继承(用接口来取代)、运算符重载(opeor ovraig)等特性,Java
20、继承了 C语言面向对象技术的核心,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Jva SE1。5 版本中,Ja 又引入了泛型编程(enercProgramming)、类型安全的枚举、不定长参数和自动装拆箱等语言特性3。Jva 语言不同于一般的编译执行计算机语言和解释执行计算机语言。ava 的运行机制是首先将源代码编译成二进制字节码(byteco),也就是所谓的机器语言,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性.不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了Java程序
21、的运行效率。但是,在 J2E 14 发布后,Jav的执行速度有了大幅提升。n 公司在推出 Java 之际就将其作为一种与传统程序不同的开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java 软件必须相互兼容.Sun 公司的口号之一是“Java 语言靠群体的力量而非公司的力量”,也获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式是完全不同的4。av编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。这是 Sun 公司对 Jaa编程语言的解释.ava 平台是基于v语言的平台。这样的平台目前非常流行,因此,微软公
22、司-先后推出了与之竞争的平台以及模仿 Ja 的 C 语言。Java 的主要特性:Java 语言是简单的、面向对象的、分布式的,也是健壮的,更是安全的,Jav语言的体系结构是中立的,Java 语言具有可移植、多线程、动态等特征,a也是一种解释型的语言,Jva 是高性能的.Java 语言的优良特性使得 Jva 应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用.Java 对对象技术的全面支持和 Jva 平台内嵌的 API 能缩短应用系统的开发时间并降低成本。Java 的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是ava 企业应用编
23、程接口(JavaEterisAI)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。2 JAV E平台技术介绍JAVA E 核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共同的标准及规格,让各种依循JAA EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,企业内部或外部难以互通的窘境。JVA EE 技术的基础就是核心 Java 平台或 Ja2 平台的标准版,A EE 不仅巩固了标准版中的许多优点,例如编写一次、随处运行的特性、方便存取数据库的DBCAPI、ORBA 技术以及能够在 Internt 应用中保护数据的安全模式等
24、等,同时还提供了对 EB(terpi JvaBns)、Jva vlets A、SP(Jv Severaes)以及 X技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构5.JA EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求.通过提供统一的开发平台,JAVA EE 降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持 EnrpriseJavBeans6,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。JAVAEE的四层模型,如图所示。(1)运行在客户端机器
25、上的客户层组件。(2)运行在 JV EE 服务器上的 Web层组件。(3)运行在 JAVA E 服务器上的业务逻辑层组件。-(4)运行在 EI服务器上的企业信息系统(Enterpris inormtin systm)层软件.图 21 AVA EE的层模型图221 Stru技术简介Struts 最早是作为 Apace Jakra 项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高 Jvaerver Pags、Servt、标签库以及面向对象的技术水准。Suts 这个名字来源于在建筑和旧式飞机中使用的支持金属架.当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提供支持。同样,软件工
26、程师使用 Struts 为业务应用的每一层提供支持。它的目的是为了帮助减少在运用 MV设计模型来开发 Wb 应用的时间。随着 J 与 Sele技术大量应用于以 Web 为基础的应用程序,Jv开发人员群体认为应以较佳的模式以提升 Wb 应用程序的可维护性与重复使用性。早期JSP 规格书中曾列举两种可行之 JS 应用架构,分别为 Modl1 与 Ml。如果想混合使用 Svts 和SP 的优点来建立可扩展的应用,Struts 是一个不错的选择.在 Model1 架构中,JSP 直接处理 Web 浏览器送来的请求(Request),并辅以 JavaB 处理应用相关逻辑。Model 1 架构单纯编写比较
27、容易,但在 Mol 中 J可能同时肩负 ew 与 Cotrollr 角色,两类程序代码有可能混杂而不易维护.而Model2 中将 Servle 纳入架构中扮演前端 Corolle角色,将eb 浏览器送出的-请求集中送至rlet,Srvle 可集中管理使用者登入、权限控制、多国语言转换等前置处理,再视需求转向给对应的SP处理。odel 2 中采用了较佳的VC 模式,但增加了编写复杂度.u是pace 软件基金下 Jkarta 项目的一部分。除 Struts 之外,还有其他成功的开源产品,包括omcat,A 和elocit。200年 Craig R。McClanahan先生贡献了他编写 strus
28、的 JSP Mdel 2 架构的pplican amework原始程序代码给 Apace 基金会,成为 Aphe Jaarta计划 Strut Framework 前身。Struts 框架的主要架构设计和开发者是 Caig R。McClanahan.Cra 也是 Toat 的主要架构师,以及 JaWeb Srices Develperack 的主要架构师和实现者。他现在是 Sun 的 JavaServr Fas(JSR127)以及2E平台的 Web层架构的规范领导。Cai R McClanahan 先生是C ExGoup 成员之一,曾参与S规格制定与omca 之编写,因此rtsFamwrk 广
29、受 Java 开发人员群体所重视。rland 自 2002 年底开始于开发工具Buier 中支持tts Fame。Strut最早是作为 Aahe Jkara 项目的组成部分问世运作.项目的创立者希望通过对该项目的研究,改进和提高 Jva Seve Pges、Servlt、标签库以及面向对象的技术水准。tru跟 Toct、urine 等诸多pah项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。除此之外,Srut的优点主要集中体现在两个方面:Tagli和页面导航.ali是Sut的标记库,灵活运用,能大大提高开发效率。另外,就目前国内的 JP 开发者而言,除了使用JSP
30、 自带的常用标记外,很少开发自己的标记,或许 Stuts 是一个很好的起点。Struts 框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于 MVC 的 web应用程序的开发.Struts 可以清晰地区分控制,事务逻辑和外观,从而简化了开发应用程序的过程。rut提供的类使得开发工作更加简单,这些类包括:.控制程序流程的类;2。实现和执行程序事务逻辑的类;自定义的标记库使得创建和验证 HTM表单更加容易.22。2 ibate 技术简介Hibernate 是一个开放源代码的对象关系映射框架,它对 JB进行了非常轻量级的对象封装,使得 Jva 程序员可以随心所欲的使用对象编程思维来操纵数据库
31、.ibern-t可以应用在任何使用J的场合,既可以在Ja的客户端程序使用,也可以在Servet/JP 的b 应用中使用,最具革命意义的是,Hiberat可以在应用 EJB 的 J2EE架构中取代 CMP,完成数据持久化的重任。Hiernate 的核心接口一共有 6 个,分别为:sion、essiFaty、Tsaction、Query、Criteri和 Coniguratio。这 6 个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这6个核心接口分别加以介绍.Sssio接口负责执行被持久化对象的D 操作(D 的任务是完成与数据库的交流,包含了
32、很多常见的Q语句.)。但需要注意的是essi对象是非线程安全的。同时,Hernat的 sssin 不同于 JSP 应用中的 Httesion。这里当使用 sesion 这个术语时,其实指的是 Hibernate 中的 sesio,而以后会将ttpSesion 对象称为用户 seson.Sessinatr接口负责初始化 Hinte。它充当数据存储源的代理,并负责创建 Sessio对象。这里用到了工厂模式。需要注意的是 Sessioctor并不是轻量级的,因为一般情况下,一个项目通常只需要一个 SessionFtry 就够,当需要操作多个数据库时,可以为每个数据库指定一个 SessionFactr
33、。Cofiguratn 类负责配置并启动 Hibernae,创建ionactory 对象。在Hibernte 的启动的过程中,onfguraon 类的实例首先定位映射文档位置、读取配置,然后创建 SessiFr对象。Traacon 接口负责事务相关的操作.它是可选的,开发人员也可以设计编写自己的底层事务处理代码。Que和 Criteria 接口负责执行各种数据库查询。它可以使用 HQ语句或 SQL 语句两种表达方式。Hbete 主键介绍:signd 方式由用户生成主键值,并且要在 save()之前指定否则会抛出异常特点:主键的生成值完全由用户决定,与底层数据库无关.用户需要维护主键值,在调用
34、sssion.sav()之前要指定主键值。l使用高低位算法生成主键,高低位算法使用一个高位值和一个低位值,然后把算法得到的两个值拼接起来作为数据库中的唯一主键。Hio 方式需要额外的数据库表和字段提供高位值来源。默认情况下使用的表是 hibernaeunque_ke,默认字段叫做nexthi。nei 必须有一条记录否则会出现错误。特点:需要额外的数据库表的支-持,能保证同一个数据库中主键的唯一性,但不能保证多个数据库之间主键的唯一性。Hio主键生成方式由 Hirnte维护,所以ilo 方式与底层数据库无关,但不应该手动修改i/lo 算法使用的表的值,否则会引起主键重复的异常。Incrm方式对主
35、键值采取自动增长的方式生成新的主键值,但要求底层数据库的支持 Seuence。如 Oracle,D2 等。需要在映射文件 xxx。bm.xl 中加入 Inceent 标志符的设置。特点:由ibeae 本身维护,适用于所有的数据库,不适合多进程并发更新数据库,适合单一进程访问数据库。不能用于群集环境。tty 当时根据底层数据库,来支持自动增长,不同的数据库用不同的主键增长方式。特点:与底层数据库有关,要求数据库支持 Idety,如 MQl 中是 ao_ncrement,L evr 中是 Idntit,支持的数据库有 MySq、SQLServer、B2、Sybs和 HproncSQL。Idntty
36、 无需 Hibrat和用户的干涉,使用较为方便,但不便于在不同的数据库之间移植程序。Sequence 需要底层数据库支持 Sequen方式,例如 Orale 数据库等。特点:需要底层数据库的支持序列,支持序列的数据库有 D2、Pstgreq、Oracle、SAPD等在不同数据库之间移植程序,特别从支持序列的数据库移植到不支持序列的数据库需要修改配置文件。Ntive 主键生成方式会根据不同的底层数据库自动选择 Ientity、Seqee、Hl主键生成方式。特点:根据不同的底层数据库采用不同的主键生成方式.由于brae 会根据底层数据库采用不同的映射方式,因此便于程序移植,项目中如果用到多个数据库
37、时,可以使用这种方式。UID 使用 128 位 UUI算法生成主键,能够保证网络环境下的主键唯一性,也就能够保证在不同数据库及不同服务器下主键的唯一性。其最大的特点就是能够保证数据库中的主键唯一性,这样就可以节省存贮空间。oreign 用于一对一关系中。UID 主键生成方式使用了一种特殊算法,保证生成主键的唯一性,支持 SQ Sever 和 MySQL 数据库。2.23 Spring 技术简介Spng 是一个开源框架,它由d Johson 创建.它是为了解决企业应用开发的复杂性而创建的。prig 使用基本的 Javaen 来完成以前只可能由 EJB 完成的事情。然而,prig 的用途不仅限于服
38、务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Ja应用都可以从png 中受益。rin 框架是一个分层架构,由 7个定义良好的模块组成。Sring 模块构建-在核心容器之上,核心容器定义了创建、配置和管理 ba 的方式,如下图所示.图2Sprig 模块Sprig 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现.每个模块的功能如下:核心容器:核心容器提供 Sprin 框架的基本功能。核心容器的主要组件是BeaFctory,它是工厂模式的实现。BeanFa 使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。Spn 上下文:prng
39、上下文是一个配置文件,向Spring 框架提供上下文信息。pring 上下文包括企业服务,例如 JNDI、电子邮件、国际化、校验和调度功能。pringAOP:通过配置管理特性,Sping AOP 模块直接将面向方面的编程功能集成到了Sping 框架中。所以,可以很容易地使 Sprig 框架管理的任何对象支持AOP。Sprig P 模块为基于Srig的应用程序中的对象提供了事务管理服务。通过使用 Sprin O,不用依赖JB 组件,就可以将声明性事务管理集成到应用程序中。rin AO:DBDAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息.异常层次结
40、构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Sring DA的面向 JDC 的异常遵从通用的 DA 异常层次结构。Spring ORM:Srig 框架插入了若干个 M 框架,从而提供了RM 的对象关系工具,其中包括JDO、Heate 和 iatisSQL ap。所有这些都遵从 S-rng 的通用事务和D异常层次结构.prng Web 模块:eb上下文模块建立在应用程序上下文模块之上,为基于 Wb 的应用程序提供了上下文。所以,Sprng 框架支持与 akarta Srts 的集成。W 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。Spring
41、MV 框架:MVC 框架是一个全功能的构建 e 应用程序的 MVC 实现。通过策略接口,MC 框架变成为高度可配置的,MVC容纳了大量视图技术,其中包括 JP、Velociy、Tiles、iText 和 OI。Sprng 框架的功能可以用在任何 J2EE 服务器中,大多数功能也适用于不受管理的环境.Sping 的核心要点是:支持不绑定到特定 2EE服务的可重用业务和数据访问对象。毫无疑问,这样的对象可以在不同 JE 环境(We 或 EB)、独立应用程序、测试环境之间重用。简单来说,Spring 是一个轻量级的控制反转(IOC)和面向切面(AP)的容器框架.IO和 AOP:控制反转模式(也称作依
42、赖性介入)的基本概念是:不创建对象,但是描述创建它们的方式.在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器(在Sping框架中是 OC 容器)负责将这些联系在一起。在典型的 IC 场景中,容器创建了所有对象,并设置必要的属性将它们连接在一起,决定什么时间调用方法。下表列出了 OC 的一个实现模式.类型 1 服务需要实现专门的接口,通过接口,由对象提供这些服务,可以从对象查询依赖性(例如,需要的附加服务)类型 2 通过 Javaean 的属性(例如setter 方法)分配依赖性类型3 依赖性以构造函数的形式提供,不以aaBan 属性的形式公开。Sring 框架的
43、 IOC 容器采用类型2 和类型 3实现.AOP 就是面向方面的编程,是一种编程技术,它允许程序员对横切关注点或横切典型的职责分界线的行为(例如日志和事务管理)进行模块化。P 的核心构造是方面,它将那些影响多个类的行为封装到可重用的模块中.AOP 和 IOC 是补充性的技术,它们都运用模块化方式解决企业应用程序开发中的复杂问题。在典型的面向对象开发方式中,可能要将日志记录语句放在所有方法和Java类中才能实现日志功能.在 AOP 方式中,可以反过来将日志服务模块化,并以声明的方式将它们应用到需要日志的组件上.当然,优势就是 Jva 类不需要知道日志服务的存在,也不需要考虑相关的代码.所以,用
44、Sprng AOP编写的应用程序代码是松散耦合的。AOP的功能完全集成到了 png事务管理、日志和其他各种特性的上下文中。-IOC 容器Sping 设计的核心是 o。pigframer。bean 包,它的设计目标是与 JvaBen 组件一起使用。这个包通常不是由用户直接使用,而是由服务器将其用作其他多数功能的底层中介。下一个最高级抽象是 anFator 接口,它是工厂设计模式的实现,允许通过名称创建和检索对象。Beanctry 也可以管理对象之间的关系。BeanFctory 支持两个对象模型.单态 模型提供了具有特定名称的对象的共享实例,可以在查询时对其进行检索.Singletn 是默认的也是
45、最常用的对象模型。对于无状态服务对象很理想.原型 模型确保每次检索都会创建单独的对象。在每个用户都需要自己的对象时,原型模型最适合。bea 工厂的概念是 pring 作为 IC 容器的基础。IO 将处理事情的责任从应用程序代码转移到框架.正如我将在下一个示例中演示的那样,Sping框架使用 JvaBean属性和配置数据来指出必须设置的依赖关系。3ySQL 数据库简介MySQL 是一个小型关系型数据库管理系统,开发者为瑞典 MySQLAB 公司。Sn公司于 2008 年 1 月 16 号收购了瑞典 MySQLA公司。而在 209 年,Orcl又收购了UN。当时,没有任何人对 MyQL 的前途抱乐
46、观的态度。但是目前,MSL被广泛地应用在 Intenet 上的中小型网站中。由于其速度快、体积小、总体拥有成本低,尤其ySL 是开源的这一特点,所以许多中小型网站为了降低网站总体拥有成本而选择了SQL 作为网站数据库.MySL 特性:1。使用和+编写,并经过了多种编译器进行测试,保证源代码的可移植性;2支持 FreeSD、A、OpeBD、MaOS、NoellNetwe、Solaris、-X、Linu、S/2Wrp、Widows 等多种操作系统;3。MyL 为多种编程语言提供了PI.这些编程语言包括 C、C+、J、ytn、PHP、Per、Ruy、cl 和 Eiffl 等;4。支持多线程,可以充分
47、利用 CPU 资源;5。使用优化的Q查询算法,有效地提高查询速度;。既能够作为一个单独的应用程序,应用在客户端服务器网络环境中,也能够作为一个库,嵌入到其他的软件中提供多语言支持,常见的编码如中文的 5、GB31,日文的 ShifJ等都可以用作数据表名和数据列名;7提供 TCP/I、J和 OC 等多种数据库连接途径;-8。提供一些管理工具,例如:管理、检查、优化数据库;9.可以处理拥有上千万条记录的大型数据库。MySQL 的应用:与其他的大型数据库例如racl、QL Serer、B2 等相比,ySL 也有它的缺点,如规模小、功能有限(MySQLluser 的功能和效率都相对比较差)等,但是这些
48、不会影响ySQL 受欢迎的程度。MySQL 提供的功能对于一般的个人使用者和中小型企业来说已经绰绰有余,而且由于 MSQ是开源的软件,因此可以大大降低总体拥有成本。LAMP(ux+Aahe+M+PH)是目前 Intenet 上流行的网站构架方式,即:操作系统使用 Linux,Apac作为 W服务器,数据库使用 MSQ,PH作为服务器端脚本解释器。这四个软件的优点都是自由或开放源码软件(LOSS),所以使用这种方式不用花一分钱就可以建立起一个稳定、免费的网站系统。ySQL 管理:MySQL 数据库可以使用命令行工具管理(命令 myql 和mysqadmi),也可以从 MyL 的网站下载图形管理工
49、具SQL Quey rose和yQLAdministrator。phpMyAdmin ySQL 资料库系统管理程式,是由写成的,让管理者可用b 界面管理 MySQL 资料库。由HP 写成的还有 phpMyacupPro,可以透过b 介面创建和管理数据库。它可以创建伪 cronbs,可以用来在某个时间或周期自动备份SQL 数据库.除此之外,还有其他的GUI管理工具,例如早先的mlr 以及avit,emsmysqlmnager 等等。MyQL 最常见的应用架构有:适合小规模应用的单点(il);适合中小规模应用的复制(Replicaton);适合大规模应用的集群(Clst)。MySQ4。1 版本中增
50、加了不少新的性能,包括对子查询的更好的支持,对主键的更高速度的缓存,以及应网络约会网站所要求而生的,基于地理信息的查询等。与其同步开发的 5。0 版本则把目标对准了企业用户,5.0 版本具有 4。1 版本中的所有新特性,而且还有以下新特点:系统自动报错机制;对外键的良好支持以及对存储过程的充分支持。本系统应用 My的主要原因是,MySQL 数据库的体积小,而且运行速度快,总体拥有成本低,MySL 服务器是可靠的和易于使用的数据库服务器,而且其是开放源码,为了降低网站总体拥有成本而选择 MySQL 作为网站数据库。-24 MVC 设计模式简介模型(Model),视图(Viw)和控制(Ctrole