JAVA使用XML作为持久存储介质实现方法

文章作者 100test 发表时间 2007:09:11 11:44:38
来源 100Test.Com百考试题网


  对一些需要将数据持久化的小型程序中,传统的关系型数据库显得庞大而不实用,OO数据库有一个学习曲线的问题,而使用XML是一种较好的选择.本文将就设计一个合理的XML持久化的解决方案进行探讨.

  使用XML作为持久层解决方案的,它的基本功能要有:

  1.对象的CRUD功能(本例中基本对象是Member类).

  2.保证线程安全,对桌面程序和Web程序都一样适用.

  3.有缓存,在存储介质即XML文件突然丢失的情况下还能有效工作.

  本例采用了MemberService和MemberPersistence两个类来协作完成这些功能.

  MemberService是业务层和持久层之间的桥梁,用于对Member对象的CRUD操作,内置一个hashtable来缓存Member对象,即使文件突然丢失,缓存中的数据也不会被影响.它内置一个MemberPersistence成员来完成与持久介质的交互.

  实现添加,删除,更新的三个函数add(),0delete(),0update()都用lockObj实现了同步,这样就无需担心线程安全问题.其它函数对members成员没有修改,故不需要实现同步.

try{ 

memberPersistence.add(member). 

members.put(member.getId(), member). 

return true. 

} 



catch(XmlFileWriteException ex){ 



   System.out.println("Member:"   member.getId()   " add error!"). 

   return false. 

}

  当MemberPersistence添加对象成功后,这个对象才会被添加到members中,这样保证了缓存和实际数据的同步.如果颠倒一下顺序,那末MemberPersistence添加对象不成功时,出现XmlFileWriteException异常,这是还需要在catch中删除刚才添加的对象,这样做人为加大了程序的复杂度,不如上面的做法简单高效.

  关于查询函数的做法不明白的请见 http://www.blogjava.net/sitinspring/archive/2007/06/05/122119.html 中形式三.



相关文章


浅谈4种类型的JDBC驱动程序
J 显示中文问题的解决方案
Comet:HTTP长连接的“服务器推”技术
Java编程实战篇:设计自己的A otation
JAVA使用XML作为持久存储介质实现方法
J2EE基础:Weblogic服务器体系结构介绍
Windows和Linux下搭建J2sdk的环境
Jbuilder6.0 Weblogic6.0完成EJB开发部署
Windows2000中如何配置JDK
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛