版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 xxxxxx大学毕业论文(设计) 题 目 基于ssi框架的电子商务信息平台的研究和构建 工商学 院xxx 专 业 08 级 2 班 学生姓名 xxx 学 号 xxxxxxx 指导教师 xxx 职 称 xx 完成日期 2011-11-30教务处 制基于ssi框架的电子商务信息平台的研究和构建【摘 要】近年来,在网络技术的迅速发展和j2ee平台被广泛采用的背景下,基于多层b/s结构的web体系结构逐渐发展并成为主流。但是,在多层web体系结构的设计中,普遍存在着程序可重用度低、功能模块可扩展性差、维护工作繁琐及开发中分工协作困难等问题。设计一个松耦合和紧内聚的系统一直是软件工程领域重点研究的问题
2、。本系统基于spring+struts+ibatis简称ssi轻量级复合型框架,很好的解决了上述问题,同时解决了视图层、业务层和控制层的分离,提供了对象到关系数据库的持久化支持。本文将研究整合spring、struts和ibatis,并在电子商务信息平台中进行应用。【关键词】springstruts ibatisajax 电子商务信息平台 目录引言3第一章 系统实现原理31.1表示层框架31.2业务层框架31.3持久层框架31.4集成三种框架技术31.4.1客户层41.4.2表示层41.4.3业务层41.4.4持久层4第二章电子商务信息平台的设计52.1系统平台定位52.2用户管理系统52.3
3、信息显示系统62.4信息发布系统62.5信息查询系统6第三章 系统代码实现63.1 整合项目开发基本框架63.1.1 准备工作63.1.2 向项目中加入spring框架63.1.3 向项目中加入struts框架73.1.4 配置数据源83.1.5 为项目配置spring事务管理93.1.6 配置项目定时器93.1.7 向项目中加入ibatis框架103.1.8 向项目中加入ajax框架123.1.9 向项目中加入url重写框架153.2 具体代码实现153.2.1持久层实现163.2.2 业务逻辑层的实现223.2.3控制层实现243.2.4展示层页面实现263.2.5平台页面展示37第四章
4、总结43参考文献43引言伴随着我国网络互联的普遍推广,拥有终端pc机的人数正在大幅增加,进行网络购物和电子支付的人数也必将会越来越多, 电子商务占有的市场份额也必会增加, 也将会出现更多的电子商务网站。但是,众多中小企业还有相当部分由于各因素的制约而没有开展电子商务, 这就造成了这些中小企业在面对竞争国际化、 炽热化的今天很容易处于劣势, 这是我国中小企业亟待解决的问题。作为企业的对外沟通的平台,电子商务信息平台可以巩固和树立企业形象,成为产品品牌宣传和业务推广的有力渠道,是与经销商或合作伙伴之间沟通、业务合作往来的主要纽带,节省了企业成本,提高了效率。因此,对电子商务信息平台的研究和构建有极
5、其重要的意义。第一章 系统实现原理1.1表示层框架 表现层框架主要有 struts和 tapestry。struts框架在创建w eb应用时能容易地分离表示层和业务层, 它是在 j sp m ode l 2的基础上实现的一个 mvc框架。 struts框架主要由模型、 视图、控制器三部分组成, 模型由实现业务逻辑的 javabean或 e j b组件构成, 控制器由 actionse rv l e t和 action实现,视图由一组 jsp文件构成。tapestry与 struts应用框架不同的是,它是基于组件,而不是面向脚本语言 比如 jsp和 ve locity的,组件是由一个定义文件 以
6、 xml的格式 、 一个 6html模板、 一个 java 类构成的。tapestry的组件可以被套嵌并包裹其它组件,因此可以组合形成一个更大的组件或逻辑页面。组件的行为模式为w eb页面编程提供了很大的方便,事件处理也方便很多。 s truts框架由于出现时间早,所以使用相对广泛,它的社区非常活跃,很容易找到很多现成的开源功能标签以供使用以及样例程序可供参考,而且运行比较稳定,因此本文表示层采用 s truts框架。1.2业务层框架 业务组件层轻量级解决方案主要包括 spring、h ivemind等。但是目前使用最为广泛的还是 spring框架,spring框架是一个基于ioc和aop面向
7、方面编程 的构架。采用 ioc使得它可以很容易地实现 bean的装配,提供了简洁的 aop并据此实现事务管理等,但是它不具备处理应用分布式的能力。 spr i ng的核心要点是: 支持不绑定到特定 j 2ee服务的可重用业务和数据访问对象。这样的对象可以在不同 j 2ee环境 web或ejb、独立应用程序、 测试环境之间重用。1.3持久层框架 持久层框主要有 h i bernate和各种jdo产品,以及 i batis 。hibernate是一个开源的o /rmappi ng框架,它对 jdbc进行了非常轻量级的对象封装,可以应用在任何使用 jdbc的场合,可以在应用 ejb的j2ee框架中取
8、代cmp ,完成数据持久化的重任 ibatis是一个简易的sqlmap工具,它是将手工编写的在xm l配置文件中的 sql语句映射成 java对象。使用 i bat is提供的 o /r m appi ng机制,对业务逻辑实现人员而言,面对的是纯粹的 java对象,这一层与通过 h i bernate实现o /r m app i ng而言基本一致,而对于具体的数据操作,h i bernate会自动生成 sql语句,而 ibatis则要求开发者编写具体的sql语句。相对 h iberna te等全自动o /r m appi ng机制而言,i batis以sql开发的工作量和数据库移植性上的让步,
9、为系统设计提供了更大的自由空间。本文采用 i batis作为持久层框架,充分发挥其自由灵活的特点。1.4集成三种框架技术 将s truts框架,spri ng框架和i batis框架集成在一起,实现无缝连接,可达到提高软件开发效率的目的。集成后的框架分为五个逻辑层,自顶向下依次是客户层、 表示层、 业务层、 持久层、 数据源层,图 1为五个逻辑层的分布情况以及三个框架分别所居的层次。 图 1 整合后的分层结构图1.4.1客户层 该层完成与用户的交互功能,负责传送客户请求,接收系统响应,显示处理结果。主要由 html代码、jsp代码和标签组成,属应用系统的前端界面部分。1.4.2表示层 该层主要
10、负责处理用户请求,并将请求信息发送到业务层进行处理,业务层处理完之后,将处理结果返回到客户层,基于 mvc模式的 s truts框架工作在表示层,它还负责处理应用程序的异常以及对提交的表单进行数据校验。1.4.3业务层 该层负责处理用户请求的业务逻辑。业务层采用轻量级容器 spring ioc,它通过配置 xml文件进行各层间的交互,为表示层提供业务模型组件。业务模型组件通过调用持久层 dao 操纵数据库,完成业务逻辑。 ioc还提供事务处理、 缓冲池等容器组件,提升系统性能,保证数据完整性。1.4.4持久层 该层主要实现对数据库的操作。 i bat is框架工作在持久层,i bat is d
11、ao 通过调用 sqlm ap ,完成对数据库的操作,实现业务层的调用。 i bat is sqlm ap使用 x m l描述符将javabeans等映射到 sql语句,通过 jdbc实现与底层关系数据库的交互。数据源层 由关系型数据库系统 如: sql serve r ,oracle等 构成数据源层。集成后的框架具备了三种框架的技术优势,将 struts的mvc机制,spr i ng的控制反转机制,以及 i batis的 sql m ap映射机制融合在一起。集成框架在 w eb应用程序开发中的优势主要体现在: 1 struts框架的 mvc模式将表现逻辑和业务逻辑分离,摆脱了原有模式的高耦合
12、性,提高了开发效率。 2 spring框架提供了轻量级的管理业务组件的 ioc容器。实现了对 ejb技术的替代和更好的组件重用性,降低对象之间的依赖,使得程序的调试修改更为简单。 3 i batis框架实现了 dao 和 sql m ap的分离,使系统的设计更清晰、 更易维护、 更易单元测试。而且通过灵活使用sql语句基本上可以实现不使用数据访问框架能够实现的所有功能,甚至更多。 4 三框架的融合大大减少了软件开发的代码量,降低了各模块间的耦合度,使得程序更易调试、 修改与维护,提高了工作效率。 5 三框架都是开源项目,可以免费获取,不需要 e j b服务器,应用程序部署在 web服务器上,节
13、省开支、 降低了开发成本。第二章 电子商务信息平台的设计2.1系统平台定位 作为电子商务信息平台,目的是为it行业的用户提供最快最新的it行业的信息、提供便利的在线服务,使企业的利益最大化。为会员单位和其他企事业单位提供it各行业国内外新技术、新产品、先进管理经验和市场信息;为企业提供国际交流、贸易洽谈、市场开拓机会;开展营销活动,定期举办展销会等贸易促进活动,发布各种信息,提供相关服务。此平台将充分利用计算机联网改变了传统的信息传递方式,提供了快速获取最新信息的手段这一优势,及时发布it行业实时动态信息,为用户提供全方位的行业信息服务。电子商务信息平台可以巩固和树立企业形象,成为产品品牌宣传
14、和业务推广的有力渠道,是与消费者之间交流的重要渠道,是与经销商或合作伙伴之间沟通、业务合作往来的主要纽带,节省了企业成本,提高了效率,而且也为用户节约了时间。2.2用户管理系统 作为电子商务信息的展现平台,所以有必要对用户进行会员与非会员的区分,给会员赋予特殊权限,可以使用具有商业机密的信息,而非会员则只能浏览一些大众性的信息。用户管理系统的主要功能是管理和维护会员和非会员的权限和信息。 (1)在mysql上创建本电子商务平台的数据库 (2)建用户的档案信息表 (3)设置与用户信息相关的字段。 (4)设计用户界面。为了方便新用户注册,老用户及时登录,我们将用户管理模块放在了首页的最醒目的位置?
15、主页的右上方。这个模块主要包括四个内容:新用户注册、用户登录、用户修改密码以及用户忘记密码的处理。 a新用户注册。当用户填写好自己的会员信息并提交后,我们设计了一个用于处理会员信息的在后台服务器端运行的程序,用于将会员所提交的信息实时的写入数据库中。 b会员身份确认模块。用户提交了注册信息后,我们要为系统管理员设计一个查阅用户信息和确认会员身份的系统,这就是会员身份确认模块。c忘记密码处理模块。用户在注册时需要提交密码提示问题与答案,如果用户忘记了密码,但没有忘记密码提示问题的答案,那么我们可以设计出一个让用户通过回答密码提示问题的程序来让用户获得密码。在数据库中只需通过比较该用户提交的密码提
16、示问题的答案是否与原来存在数据库中的答案相匹配来判断是否给他提供正确的密码。2.3信息显示系统 传达企业电子商务信息,包括图片新闻、商城快讯、一周热点排行、新闻专题、电商服务、精彩推荐、厂商动态和电商世界,紧跟时代脉搏,把握无限商机。 1建立新闻数据库表。 由于新闻信息量大、时效性强、新闻类别多,所以采用分类显示的方法。这样一来,就需要根据新闻类别的不同建立不同的新闻数据库表。 2设置与新闻信息相关的字段,例如新闻编号,新闻标题,新闻内容,新闻发布时间等,其中新闻编号和新闻发布时间在程序设计中起着相当重要的作用。这是因为用户总是想在最先看见最新的新闻,所以,我们在设计程序时,必须将新闻的显示次
17、序按照新闻的发布时间的降序排列,这样就可以保证用户最先看到的新闻一定是最先发布的。3新闻信息的分页显示。2.4信息发布系统 为企业提供方便的在线信息发布功能,使企业及时地发布供应和需求信息。充分利用网络信息的时效性强、准确性高、便于存储和检索方便的功能,奠定企业进行网络营销决策和计划的基础。2.5信息查询系统 方便用户进行各种对感兴趣的信息进行检索,寻求商机,节省时间和资源。这部分包括分类查询和条件查询两部分。第三章 系统代码实现3.1 整合项目开发基本框架3.1.1 准备工作1 配置开发环境jdk版本:jdk1.6.0j2ee容器:tomcat 6.0数据库:mysql 5.1.23系统:w
18、indows xp profession开发工具:myeclipse6.5.0、dreamweaver8.0、photoshop cs3本系统使用的框架版本:struts2.0、spring2.5、ibatis2下载相关jar包 到spring、struts和ibatis官方网站下其最新压缩包,将下载的三个框架分别解压缩。新建一个web project(名称为ssh_news)。3.1.2 向项目中加入spring框架 将spring解压缩以后spring-framework-2.5.6dist目录中的spring.jar复制到web项目的web-inf/lib目录中(spring核心jar包
19、)。 复制spring-framework-2.5.6liblog4j中的log4j相关的jar文件到项目中web-inf/lib目录中(日志jar包)。 打开web项目中的web-inf目录中的web.xml文件,添加及结合项目实际情况配置以下内容 context-paramparam-namecontextconfiglocation/param-nameparam-value/web-inf/config/applicationcontext.xml/param-value/context-param !?log4j-context-paramparam-namelog4jconfigl
20、ocation/param-nameparam-value/web-inf/config/perties/param-value/context-paramcontext-paramparam-namelog4jrefreshinterval/param-nameparam-value60000/param-value /context-param listener-class /0.context.contextloaderlistener /listener-class listener-class/.util.log4jconfiglistener/listener-c
21、lass 3.1.3 向项目中加入struts框架将解压之后的strutsstruts-appsstruts2-blank-web-inflib下面的六个基本jar文件复制到web项目的web-inf/lib目录中打开web项目中的web-inf目录中的web.xml文件,添加及结合项目实际情况配置以下内容!- struts2 filter - filter-namestruts2-cleanup/filter-name filter-/.uts2.dispatcher.actioncontextcleanup /filter-classfilter-mapping
22、 filter-namestruts2-cleanup/filter-name url-pattern/*/url-pattern/filter-mapping filter-namestruts2/filter-name filter-/.uts2./.ter.strutsprepareandexecutefilter /filter-classfilter-mapping filter-namestruts2/filter-name url-pattern/*/url-pattern/filter-mapping3.1.4 配置数据源spring提供了对多种数据连接池的支持,本项目选中c0
23、p0来作为数据库的连接,直接将spring-framework-2.5.6libc3p0下面的c3p0-.jar复制到web项目的web-inf/lib目录中(1)为了是后边修改数据库相关信息更加方便,在web-infconfig目录中创建perties,具体内容:/./.ver jdbc.urljdbc:/. jdbc.usernameroot jdbc.passwordmysql (2)在web项目中的web-infconfig目录中的spinrg的配置危机applicationcontext.xml文件,配置以下内容:!- 加载perties
24、文件 -bean idlobhandler class/./.defaultlobhandler/bean idpropertyconfigurerclass/./.fig.propertyplaceholderconfigurerproperty namelocations/web-inf/config/perties!- 配置jndi数据源 - bean iddatasourceclasscom.mchange.v2.c3p0bopooleddatasourceproperty namedriverclass$jdbc.driverclassnameproperty nam
25、ejdbcurl$jdbc.urlproperty nameuser$jdbc.usernameproperty namepassword$jdbc.passwordproperty namepoolsize value5 / property nameminpoolsize value2 /3.1.5 为项目配置spring事务管理 在web项目中的web-infconfig目录中的spinrg的配置危机applicationcontext.xml文件,添加以下内容:!- 事务管理 -bean idtransactionmanager class/./.asourcetransactionm
26、anagerproperty namedatasource refdatasource/!- 管理事务操作 -aop:configaop:pointcut idservicespointcut expressionexecution*com.eda.*.service.impl.*.*./aop:advisor advice-reftxadvice pointcut-refservicespointcut/aop:config!- 事务控制 -tx:advice idtxadvice transaction-managertransactionmanagertx:attributestx:me
27、thod nameadd* propagationrequired / tx:method nameupdate* propagationrequired / tx:method namedelete* propagationrequired /tx:method namequery* read-onlytrue/ /tx:attributes /tx:advice3.1.6 配置项目定时器由于项目需要根据后台的数据生成实时的数据信息,因此需为项目配置一个时间调度器,让项目可以根据设定的时间实时执行我们所提供的方法,生成最新的信息。spring提供对调度器的支持,将spring-framewo
28、rk-2.5.6libquartz下面的quartz-all-1.6.1.jar复制到web项目的web-inf/lib目录中,同时将struts-lib项目commons-collections-3.2.jar复制到web项目的web-inf/lib目录中编写相应的从数据库中读取数据生成最新信息的java类,本项目中此类为jsptohtml.java,项目中将根据设定的时间执行jsptohtml类中的buildhtml方法。详细代码请附件源码。在applicationcontext.xml文件,添加以下内容:!- 调度器配置 -bean idjsptohtmlclass/./.
29、tohtmlproperty nameemotionserviceref beanemotionservice /property namecommentserviceref beancommentservice /property namelinkinfoserviceref beanlinkinfoservice /property namenavigationserviceref beannavigationservice /bean idmethodinvokingjobdetailclass/./.hodinvokingjobdetailfactorybeanproperty nam
30、etargetobjectref beanjsptohtml /!- 指定jsptohtml中buildhtml,将根据设定的时间执行这个方法 -property nametargetmethod buildhtmlbean idsimpletriggerclass/./.pletriggerbeanproperty namejobdetailref beanmethodinvokingjobdetail /property namestartdelay0!?设定时间,单位为毫秒-property namerepeatinterval600000beanclass/./.edulerfacto
31、rybeanproperty nametriggersref beansimpletrigger3.1.7 向项目中加入ibatis框架由于spring压缩包里面已经有了ibatis的jar包,直接spring-framework-2.5.6libibatis下面的ibatis-26.jar复制到web项目的web-inf/lib目录中在ibatis中sqlmapclientfactorybean是一个工厂bean,它暴露了两个关键属性用于注射ibatis配置文件和相关的数据源。在工厂内部,通过读取ibatis配置文件,spring会创建出ibatis的核心组件sqlmapcli
32、ent,并向相关的dao进行注射。 sqlmapproductdao继承了sqlmapclientdaosupport,后者暴露出一个sqlmapclient属性,用于接受spring的注射。sqlmapclientdaosupport会对其中封装的sqlmapclienttemplate做相应的设置,所以dao子类便可在取用sqlmapclienttemplate时正常地工作了。首先在web-inf/config中创建ibatis配置文件sqlmapconfig.xml,通过它加载相应的sql配置文件,具体内容如下?xml version1.0 encodingutf-8?!doctype
33、sqlmapconfig public -/ibatis/dtd sql map config 2.0/en/.settingscachemodelsenabledfalseenhancementenabledtruelazyloadingenabledtrueerrortracingenabledtruerequests32sessions10transactions5usestatementnamespacestrue/!?加载相应的sql文件- sqlmap resourcecom/emotion/model/sql/emotionarticle.xml/ sqlmap resource
34、com/emotion/model/sql/comment.xml/ sqlmap resourcecom/emotion/model/sql/navigation.xml/ sqlmap resourcecom/emotion/model/sql/linkinfo.xml/ sqlmap resourcecom/emotion/model/sql/uservo.xml/在applicationcontext.xml文件,添加对ibatis的支持:/省略bean idsqlmapclient class/.ibatis.sqlmapclientfactorybean!- 加载ibatis配置文
35、件 -property nameconfiglocation web-inf/config/sqlmapconfig.xmlproperty namedatasource refdatasource /property namelobhandler reflobhandler/省略 相应的dao以及service则由spring容器通过依赖注入来管理:/省略bean iduserdao class/.impl.userdaoimplproperty namesqlmapclient refsqlmapclient /!- 文章 -bean idemotiondao class/.impl.em
36、otiondaoimplproperty namesqlmapclient refsqlmapclient /bean idemotionservice class/./.tionserviceimplproperty nameemotiondao refemotiondao/property namecommentdao refcommentdao/省略3.1.8 向项目中加入ajax框架 在目前的web2.0热潮中,ajax已成为人们谈论最多的技术术语!其实,ajaxasynchronous javascript and xml是多种技术的综合,它使用xhtml和css标准化呈现,使用do
37、m实现动态显示和交互,使用xml和xstl进行数据交换与处理,使用xmlhttprequest对象进行异步数据读取,使用javascript绑定和处理所有数据。在本项目中,将使用目前比较流行的两个ajax框架ajaxanywhere和dwr。配置dwr框架 dwr(direct web remoting)是一个开源的类库,可以帮助开发人员开发包含ajax技术的网站。它可以允许在浏览器里的代码使用运行在web服务器上的java函数,就像它在浏览器里一样。dwr包含两个主要的部分,其一是运行在浏览器客户端的javascript,这部分被用来与服务器通信,并更新页面内容;其二是运行在服务器端的jav
38、a servlet,这部分被用来处理请求并将响应结果发送给浏览器。在项目通过根据用户评论是提交的用户名和密码,查询是否有次用户存在,存在则将相应的信息返回到页面/判断是否匿名/省略function checkuservar comment1 document.getelementbyidcommentvoment.value;comment1 comment1.replace/s*|s*$/g,;ifcomment1 alert请输入评论内容;return false; /匿名ifdocument.getelementbyidnotuser.checkedcomment;/不匿名,检查用户名和
39、密码elsevar uservo new uservo;var namedocument.getelementbyidusername.value;var pwddocument.getelementbyidpwd.value;name name.replace/s*|s*$/g,;pwd pwd.replace/s*|s*$/g,;ifnamealert请填写用户名!;return;ifpwdalert请填写密码!;return;uservo.loginnamename;uservo.loginpwdpwd;userdao.loaduseruservo,callback;function c
40、allbackdataifdatanull|dataalert用户名或密码不正确!;elsedocument.getelementbyidcommentvo.userid.valuedata.id;comment;/省略 上dwr官方网站下载最新的jar包,本项目中为2.0.3版本,将dwr的jar包添加到web项目中。 首先,在web-inf目录下创建dwr的配置文件dwr.xml 在web.xml中配置dwr的servlet:/省略 servlet-namedwr/servlet-nameservlet-/.vlet.dwrservlet/servlet-classinit-parampa
41、ram-nameconfig-tcps/param-nameparam-value/web-inf/dwr.xml/param-value /init-param init-param param-namedebug/param-name param-valuetrue/param-value/init-paramservlet-mappingservlet-namedwr/servlet-nameurl-pattern/dwr/*/url-pattern /servlet-mapping/省略配置ajaxanywhere 使用ajaxanywhere可以将页面简单的划分为多个区域(zone)
42、,然后调用ajaxanywher刷新(refresh)那些指定的区域,而不是整个页面。在本系统中,对于新闻的评论采用了ajaxanywhere,当我们提交评论时,既可以在无需刷新整个页面的情况下,在下方的评论列表中看到提交的评论。如下图中,只刷新最新评论区域,同时也可以看到右上角的loading标志,如图3-1:图3-1 异步加载展示图 向项目中添加ajaxanywhere的jar包,在web.xml配置相应的过滤器: filter-nameajaxanywhere/filter-name filter-/.ilter/filter-classfilter-mapping filter-nam
43、eajaxanywhere/filter-name url-pattern*.jsf/url-pattern/filter-mappingfilter-mapping filter-nameajaxanywhere/filter-name url-pattern*.jsp/url-pattern/filter-mappingfilter-mapping filter-nameajaxanywhere/filter-name url-pattern*.action/url-pattern /filter-mapping3.1.9 向项目中加入url重写框架通过url重写,可以缩短url,隐藏实际
44、路径提高安全性,易于用户记忆和键入,易于被搜索引擎收录。向项目中添加url重写的jar包,本系统中使用的是urlrewritefilter-3.1.0.jar。首先在web-inf中创建urlwriter的配置文件urlrewrite.xml,具体内容如下:?xml version1.0 encodingutf-8? !doctype urlrewrite public -//dtd urlrewrite 3.0/en /. /infoview_0-9+.html$ to typeforward/.ion?emotionarticlevo.atricleid$1 /quer
45、yinfo_0-9+.html$ to typeforward/.ion?emotionarticlevo.auditflagy&emotionarticlevo.flag$1 /index.jsp$ to typeforward/l_index.jsp/index.html$ to typeforward/l_index.jsp其次在web.xml中配置相应的过滤器/省略 filter-nameurlrewritefilter/filter-name filter-/./.rewritefilter /filter-class init-param param-namelogleve
46、l/param-name param-valuewarn/param-value /init-param /省略 此时在浏览器中输入/.3.2 具体代码实现 作为一个电子信息展现的平台,如何更好的向外界展示企业的信息,是一个值得研究的重点,在项目中,为了获取企业发布的最新新闻列表,设计时间调度器,定时生成最新信息;为了平台的安全性和易于被搜索引擎收入,采用了url重写技术;为了提升与用户间的有好交互,向项目中加入了ajax框架。下面将通过具体的项目流程,讲解以上重点。3.2.1 持久层实现在持久程中主要包括文章vo和评论vo,同时文章和评论为一对多关系,即一篇文章可以拥有多条评论,而一条评论只
47、能属于一篇文章。(1)表结构文章表 字段名类型备注idint文章idauthorvarchar作者contenttext文章内容clickint点击数title varchar文章标题introductionvarchar文章简介upint顶downint 踩flagvarchar文章类型eanbleflagvarchar是否可用标识符auditflagvarchar是否审核标识符createdatedate创建时间pubdatedate发布时间picturevarchar附件图片地址originvarchar文章来源评论表字段名类型备注idint评论idemotionarticleidint
48、评论文章idcommentvarchar评论内容createdatedate评论时间useridint评论用户(2)对应的vo文章vo(/.el.emotionarticlevo)public class emotionarticlevo extends basevo private int atricleid;private string title;private string author;private string content; /省略get/set方法 评论vo(/.elmentvo)public class commentvo extends basevo private int id;/* 用户id*/private int userid;/* 用户名*/private stri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论