先将用户的操作保存在XML文件中,之后读取XML文件,操作数据库
恢复相反

解决方案 »

  1.   

    to fmzbj(mz):
    谢谢你的回复能不能再具体一些呢?万分感谢
      

  2.   

    你的意思是先操作数据库,再存入Xml,为何要恢复??
      

  3.   

    这样能作数据库备份吗?如果数据库中的数据有一百万条,那么你的XML文件要多大啊,从服务器端导到客户端需要多长时间,恢复起来更容易丢失数据。
    对于读取XML文件,java有这样的类XMLReader等等,你搜索一下,网上有很多这方面的资料。
      

  4.   

    使用jdom,
    客户会不定时的新增或修改数据,客户可以把现有的信息保存到一个xml文件(其中记录了新增或修改的记录的数据)保存
    当客户操作数据库的时候同步更新xml里面对应的element对象.使用XMLOutputter来写xml文件也可以把导出的xml文件导入回系统(根据xml内容对数据库进行insert或update)针对xml里面的每个element到数据库里面查询判断是否有记录来进行insert或update
      

  5.   

    to cnfalcon(中国猎鹰):
    这里已经考虑的数据库大的原因,所以在xml中只保留有修改的记录,这只是对单一可户来说的,整个数据库的备份还是定期用exp手动来。
      

  6.   

    AngelInDark(人生就素那浮云) 说的好像不可行     
    当客户操作数据库的时候同步更新xml里面对应的element对象   
     
    怎么保证同步   在程序里写么    效率降低的不是1点半点
    触发器么        你怎么用jdom更新元素   
      

  7.   

    这个是我写的在xml中新增一个id,有两个属性,name和date
    File xmlFile = new File("e:\\xml\\test.xml");
        Element root;
        Document doc;
        SAXBuilder builder = new SAXBuilder();
        try  {
          if(!xmlFile.exists())  {
            xmlFile.createNewFile();
            root = new Element("test");
            doc = new Document(root);
          }  else  {
            try  {
              doc = builder.build(new InputStreamReader(new FileInputStream(xmlFile),"utf-8"));
              root = doc.getRootElement();
            }  catch(JDOMException e)  {
              throw e;
            }
          }
    if(currentElement == null)  {
              Element tmpElement = new Element("id");
              tmpElement.addAttribute("name",strName);
              tmpElement.addAttribute("date",theMonth);
              root.addContent(tmpElement);
            }
    XMLOutputter op = new XMLOutputter("    ",true,"gb2312");
            op.setTrimText(true);        FileOutputStream fileOut =new FileOutputStream(xmlFile);
            op.output(doc,fileOut);
      

  8.   

    省略了中间判断该element是否为null,更新的话新removeAttribute,再addAttribute