一种基于CMS的快速建站方法及建站系统
文献发布时间:2023-06-19 13:46:35
技术领域
本发明涉及数据复制快速建站技术领域,特别是涉及一种基于CMS的快速建站方法及建站系统。
背景技术
目前市面上的网站建站方式有很多,但是大致可以分为两种,一种是定制化建站,从初期的调研、双方沟通确认设计风格、再到前端实现、后端开发,最后测试调整,涉及人员较多、工期较长。另一种是半自动化建站方式,这种方式仍然需要进行数据库的迁移、数据库文件以及服务器环境、域名相关等方面的配置,流程颇有些复杂,综合各方面因素考虑,已经远远不能满足客户的需求。
因此,有一套能够复用的网站系统就显得尤为重要。随着网站建设行业的发展,一键式便捷化建站日益成熟,被广泛使用。通过模板复用更加快速的完成网站复制并且能够将源网站的数据复制一份转移到目标网站已经成为客户新的需求点。基于此,亟需一种能够通过数据复制的方式实现快速建站的建站方法及建站系统。
发明内容
本发明的目的是提供一种基于CMS(Content Management System,内容管理系统)的快速建站方法及建站系统,将源网站的数据复制至目标网站,实现快速创建网站的目的。
为实现上述目的,本发明提供了如下方案:
一种基于CMS的快速建站方法,所述快速建站方法包括:
从源网站数据库中提取存储源网站数据的所有第一数据表,对每一所述第一数据表中的数据进行提取,形成压缩文件;
根据所述源网站的数据结构对目标网站数据库进行处理,使目标网站的数据结构与所述源网站的数据结构相同;
将所述压缩文件写入所述目标网站数据库中,建立所述目标网站。
一种基于CMS的快速建站系统,所述快速建站系统包括:
提取模块,用于从源网站数据库中提取存储源网站数据的所有第一数据表,对每一所述第一数据表中的数据进行提取,形成压缩文件;
处理模块,用于根据所述源网站的数据结构对目标网站数据库进行处理,使目标网站的数据结构与所述源网站的数据结构相同;
写入模块,用于将所述压缩文件写入所述目标网站数据库中,建立所述目标网站。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明用于提供一种基于CMS的快速建站方法及建站系统,先从源网站数据库中提取存储源网站数据的所有第一数据表,并对每一第一数据表中的数据进行提取,形成压缩文件。然后根据源网站的数据结构对目标网站数据库进行处理,使目标网站的数据结构与源网站的数据结构相同。最后将压缩文件写入目标网站数据库中,即可建立目标网站,进而本发明通过对源网站的所有数据进行抓取打包,并复制传输到目标网站数据库中,完成对源网站的数据复制,实现快速创建得到目标网站。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1所提供的快速建站方法的方法流程示意图;
图2为本发明实施例1所提供的快速建站方法的原理示意图;
图3为本发明实施例1所提供的快速建站方法的详细流程示意图;
图4为本发明实施例2所提供的快速建站系统的系统框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种基于CMS的快速建站方法及建站系统,将源网站的数据复制至目标网站,实现快速创建网站的目的。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例1:
本实施例用于提供一种基于CMS的快速建站方法,如图1和图2所示,所述快速建站方法包括:
S1:从源网站数据库中提取存储源网站数据的所有第一数据表,对每一所述第一数据表中的数据进行提取,形成压缩文件;
S1中,对每一第一数据表中的数据进行提取,形成压缩文件可以包括:
(1)对于每一第一数据表,根据第一数据表的表名确定第一数据表对应的分类标识;即对每一个第一数据表,按照表名赋予分类标识,比如:第一数据表的表名为wcm_cms_news,则该第一数据表的分类标识为新闻标识;第一数据表的表名为wcm_cms_product,则该第一数据表的分类标识为产品标识。需要说明的是,本实施例中第一数据表和表名是一一对应关系,即一个表名只对应一个第一数据表,不会出现多个第一数据表的表名相同的情况。
(2)根据第一数据表的分类标识确定第一数据表对应的数据提取方法;比如,如果分类标识为wcm_cms_news,则可以确定第一数据表的数据提取方法为类WcmCmsNewsServiceImpl中的doExportData方法。当然,还可包括其他的分类标识与数据提取方法的对应关系,本实施例对此不做赘述。
(3)利用数据提取方法对第一数据表中的数据进行提取,得到第一数据表对应的数据文件;
具体的,利用数据提取方法遍历第一数据表中的所有表字段,并将每一表字段对应的数据均存储至json数组,json数组即为json格式的数组。然后使用fileWriteStringToFile(将字符串写入到文件)的方法将json数组内的数据解析成字符串,并将所有字符串写入第一数据表对应的数据文件中,得到第一数据表对应的数据文件。即遍历第一数据表内的所有表字段,将所有表字段对应的数据汇总解析为json数据文本,并存储在以第一数据表的表名命名的数据文件中,以第一数据表的表名命名的数据文件即为第一数据表对应的数据文件。
利用上述步骤,能够得到每一个第一数据表对应的数据文件,即第一数据表与数据文件一一对应。该数据文件共享与其相对应的第一数据表的分类标识,即根据数据文件的分类标识即可确定该数据文件为哪一第一数据表的数据文件。
(4)将所有数据文件进行压缩,形成压缩文件。
具体的,先利用File类创建对象,得到一个空压缩文件,然后将所有数据文件以文件流的形式写入该空压缩文件,即形成压缩文件。进而将所有的数据文件压缩成为一个压缩文件,还可将该压缩文件下载到本地存储。
更为具体的,形成压缩文件的过程包括:在源网站服务器创建一个临时文件夹,该临时文件夹用来存储所有的数据文件。使用File类创建对象,得到一个空压缩文件zipFile,使用compress(压缩)的方法将zipFile进行压缩,zipFile用于存入临时文件夹中的所有数据文件,即将所有数据文件以文件流的形式写入到该zipFile中。首先设置缓冲区为1024个字节的数组bytes[ ],并创建一个OutputStream(输出流)对象ServletOutputStream(向客户端发送二进制数据的输出流)。通过FileInputStream(zipFile)获得zipFile的输入流对象fileInputStream,通过FileInputStream类提供的fileInputStream.read( )方法读取zipFile对应的临时文件夹中的所有数据文件的数据,并将数据存储到缓冲区数组bytes[ ]中,然后将数组bytes[ ]通过servletOutPutStream.write(bytes,0,len)方法写入zipFile,得到压缩文件,并将压缩文件下载到本地存储,之后清空源网站服务器上的临时文件夹,释放服务器资源。
S2:根据所述源网站的数据结构对目标网站数据库进行处理,使目标网站的数据结构与所述源网站的数据结构相同;
在根据源网站的数据结构对目标网站数据库进行处理之前,本实施例的快速建站方法还包括:利用类DatabaseMetaData获取源网站数据库的元数据,从元数据中获取源网站数据库中所有第一数据表的表名,得到源网站的数据结构,源网站的数据结构即为所有第一数据表组成的集合。
对目标网站数据库进行的处理可以包括调整目标网站数据库的数据结构(表结构)以及所有表中数据的清空或覆盖操作。具体的,将源网站的数据结构和目标网站的数据结构进行对比,若有一个数据表的表名不匹配,则证明是初次传输,即此次传输属于目标网站的建站过程。此时,S2可以包括:
根据源网站的数据结构,通过executeUpdate方法执行create table语句,在目标网站数据库中插入多个第二数据表,使目标网站的数据结构与源网站的数据结构相同。第二数据表与第一数据表一一对应,且相对应的第一数据表和第二数据表的表名、表字段及其相应的属性相同。即在目标网站数据库插入源网站数据库的数据结构,保证目标网站数据库的表名以及表字段与源网站数据库的表名及表字段一一对应相同,在所有第二数据表都完整无误的插入目标网站数据库之后,清除目标网站数据库的冗余数据,冗余数据包括目标网站数据库中原有的数据表和数据表中的数据。
S3:将所述压缩文件写入所述目标网站数据库中,建立所述目标网站。
将压缩文件写入目标网站数据库即为将从源网站复制的数据同步到目标网站数据库中,以完成目标网站的数据库的存储更新,从而建立得到目标网站。S3中,将压缩文件写入目标网站数据库中可以包括:
(1)对压缩文件进行解压,得到多个数据文件;
可先在目标网站服务器创建一个临时文件夹,并将压缩文件传入临时文件夹进行解压,该临时文件夹用来存储解压后得到的数据文件。在将所有数据文件都对应写入第二数据表之后,清空目标网站服务器上的临时文件夹,释放服务器资源。
(2)对于每一数据文件,根据分类标识确定数据文件对应的第二数据表;并按照数据文件特有的分类标识找到对应的数据存储方法。
(3)将数据文件中的数据写入数据文件对应的第二数据表。
具体的,使用fileReadFileToString(将指定文件中的内容读取出来并以String的形式来显示)的方法读写数据文件,将数据文件解析成一个json数组。对json数组进行遍历,根据json数组中每一个元素的指针(即key值)找到该元素的对应值(即value值),并按照表字段将所有元素的对应值写入数据文件对应的第二数据表。
按照分类标识对解压后得到的数据文件进行遍历,对于每一数据文件,解析得到json数组,对于一条json数据记录,将解析后的数据对象按字段进行遍历并插入目标网站数据库对应的数据表中,形成目标网站数据库中表的数据记录。
如图3所示,当建立得到目标网站后,本实施例的快速建站方法还包括再次向目标网站数据库传输数据,若源网站之前已经有过向目标网站传输复制数据的过程,并且再次传输复制的数据为之前未传输过的第一数据表或者为新增数据,则可以包括:
(1)根据分类标识判断此次的待传输数据是否属于新增第一数据表;新增第一数据表即指之前所有的传输过程中均未传输过的第一数据表。将此次待传输数据所属的第一数据表的表名与之前传输过程中涉及到的表名进行对比,即可快速确定此次待传输数据所属的第一数据表是否是新增第一数据表;若此次待传输数据所属的第一数据表的表名与之前传输过程中涉及到的表名均不相同,则证明此次的待传输数据属于新增第一数据表。
(2)若是,则在目标网站数据库中建立与新增第一数据表的表名、表字段、属性一一对应相同的新增第二数据表,并将待传输数据写入新增第二数据表中;
即此次的待传输数据所属第一数据表为之前未传输过的第一数据表,则首先通过executeUpdate方法执行create table语句,在目标网站数据库中插入新增第二数据表,保证此新增第二数据表表名、表字段及其相应的属性与源网站中相应新增第一数据表的表名、表字段及其相应的属性相对应,之后直接进行此新增第二数据表的insert插入数据操作请求。
(3)若否,则将待传输数据写入与待传输数据所属第一数据表相对应的第二数据表中。
即此次的待传输数据为新增数据,则直接进行对应第二数据表的insert插入数据操作请求。
本实施例基于CMS(Content Management System,内容管理系统),在复制网站系统的技术上进行了优化创新,简化了一些繁琐流程,让客户不需要懂代码,只要根据需求选择对应的复用模板(即选择源网站),就能够快速进行网站复制,建立得到目标网站。即客户在创建新站时,只需要选择对应喜欢的网站风格,就能很快完成一个网站的复制。本实施例可基于CMS管理后台,集成部署多种类、多样式、多类型的源网站,开发管理人员通过后台直接选择想要复制的网站风格,通过简单的几个步骤,在无代码开发的情况下,就可以快速完成一个网站的快速复制,在这个过程中操作人员不需要掌握代码开发技能,灵活方便。
本实施例通过对源网站的整体页面内容、结构、样式等数据以及网站基本配置项信息方面的数据进行抓取收集打包,经过对收集的数据进行复制、分类,最后将已分类好的数据复制到目标网站数据库中,完成对源网站的数据复制,实现快速创建一个网站的目的。通过程序进行源网站到目标网站的数据的收集打包、复制传输,实现了数据的快速复制传输,复制类的网站建设,不再需要管理人员手动的进行栏目创建、内容长传等操作,大大的减少了数据录入耗时,提高了网站建设的效率,节省了大量的人力物力。
实施例2:
本实施例用于提供一种基于CMS的快速建站系统,如图4所示,所述快速建站系统包括:
提取模块M1,用于从源网站数据库中提取存储源网站数据的所有第一数据表,对每一所述第一数据表中的数据进行提取,形成压缩文件;
处理模块M2,用于根据所述源网站的数据结构对目标网站数据库进行处理,使目标网站的数据结构与所述源网站的数据结构相同;
写入模块M3,用于将所述压缩文件写入所述目标网站数据库中,建立所述目标网站。
本说明书中每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
- 一种基于CMS的快速建站方法及建站系统
- 一种基于ICMP报文的快速故障检测方法