在Java中,从数据库读取并写成XML文件,这个如何用代码实现。。。
在Java中,从数据库读取并写成XML文件,这个如何用代码实现。。。再问个更深一点的问题,如何实现两台服务器同步,XML文件是如何传输的。。。譬如:在北京有一台电子商务网...
在Java中,从数据库读取并写成XML文件,这个如何用代码实现。。。再问个更深一点的问题,如何实现两台服务器同步,XML文件是如何传输的。。。譬如:在北京有一台电子商务网站的服务器,长沙也有一台服务器。。很显然,这两台服务器数据不是同步的,要想同步,就得经常做一件事,把北京服务器的数据库导出生成XML文件,通过网络传输给长沙的服务器,长沙的服务器接收后,读取并把它写进本地数据库中,同样的,长沙的服务器数据库也要做相同的事情,才能达到数据同步,请问这个是如何实现的。。。。如何用代码实现它。。。希望有能力的高手帮忙讨论下。。。
展开
2013-07-10
展开全部
思路很简单开发一个小型的WEB应用,部署在长沙和北京两台服务器上,安装个tomact就可以运行和部署了这个WEB应用主要做如下事情:
接受请求,封装json串 (为什么JSON可以查一下网上大把的)1)收到http请求后,校验是否是来自另外一个服务器的请求(通过判断请求的IP地址是否否为另外一个服务器的IP地址即可)2)校验通过后读取本地服务器数据库,查询需要实时同步的数据表,查出需要同步的数据,组装成数据对象集(例如一个arraylist),然后转换为 json格式串,写入到response输出流中。
发请求获取返回结果,插入/更新数据库1)从reponse输出流中读取返回结果,将JSON串转化为对象集(网上大把的),然后开始更新/插入数据/删除数据——————————————————————————————————————由于涉及三种操作类型 更新 删除 插入 ,所以可以分别实现三个servlet来分别负责:1)查询新增数据/插入新增对象2) 查询更新数据/派厅更新新增对象3)查询删除数据/删除待删除的对象————————————————————————————————尘银隐——————定时调度同步程搏薯序使用timer写个jar程序,循环每5分钟利用httpconnnection一次请求之行下插入/更新/删除的servlet___________________________________________________________________
接受请求,封装json串 (为什么JSON可以查一下网上大把的)1)收到http请求后,校验是否是来自另外一个服务器的请求(通过判断请求的IP地址是否否为另外一个服务器的IP地址即可)2)校验通过后读取本地服务器数据库,查询需要实时同步的数据表,查出需要同步的数据,组装成数据对象集(例如一个arraylist),然后转换为 json格式串,写入到response输出流中。
发请求获取返回结果,插入/更新数据库1)从reponse输出流中读取返回结果,将JSON串转化为对象集(网上大把的),然后开始更新/插入数据/删除数据——————————————————————————————————————由于涉及三种操作类型 更新 删除 插入 ,所以可以分别实现三个servlet来分别负责:1)查询新增数据/插入新增对象2) 查询更新数据/派厅更新新增对象3)查询删除数据/删除待删除的对象————————————————————————————————尘银隐——————定时调度同步程搏薯序使用timer写个jar程序,循环每5分钟利用httpconnnection一次请求之行下插入/更新/删除的servlet___________________________________________________________________
2013-07-10
展开全部
从数据库读数据用jdbc可以完成,读出数据后借助java xml库(有很多, 比如DOM4J,SAX)来把数据包装成xml文件。更准确地说,应和野该是数据库的同步吧。同种数据库的话坦棚庆,一般只要简单设置下,就可以让握实现同步,不用写代码转成xml来传输。 比如MySQL可以设置master/slave。 不同数据库, 可以借助数据库同步工具,像DBSyn
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-10
展开全部
你好,如果你的系统架构已经定下来了(如题中毁键所说的)。你想要实现两个地方的数据库的数据能够通过XML方式进行传输,来维护数据同步。我想我没有理解错你的想法。1.首先你需要将数据的对象mapping成XML数据。其实这一步没有太多的意思,你可以直接用字符串拼装,或者找些开源工具,将对象转换成xml。2.数据传输:你可以通过Socket进行颤轮通信,我建议你适用sun提供的HttpURLConnection对象。它已经把socket(tcp、udp)进行了HTTP协议的封装。你可以在HttpURLConnection中指定远程的一个Servlet或者一个其他URL地址,将xml写入到http的body中传个服务器端,服务器端只需要通过request.getInputStream()就可以获得输入流,你得到的就是xml信息3.将xml解析成纤洞巧java对象,并写入数据库。至于解析xml,目前有两种方式:DOM和SAX方式,两个各有优劣,这我就不和你具体说了。sun提供的jdk中其实已经提供很好的解析xml的api,你可以搭配XPATH解析xml非常方便。你也可以使用开源的dom4j之类的工具。其实,适用RMI或者WEBSERVICE,SCA等也可以实现你的需求。比如现在适用面最广的WebService,其实它基于SOAP协议,通过WSDL,来传输XML,最终能达到你能调用远端的方法。这样你为你节省了从java对象转成XML然后再从XML数据转换成JAVAobject的操作(底层封装好了)。以上我只是根据你目前的情况给你的大的思路,如果细节问题可以我qq交流,很乐意和你分享编程的知识
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
jaxb了解下(javabean XML互转) 数据库主从了解下(可以做同步) 2台服务器某几桐伍渣个实体用mecache或者redis或者mongodb缓存对象也能实现橘扒吧 话说局悄xml传输有点神奇不是很推荐
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询