内容仓库模型JCR(续

阅读更多
java 代码
  1. public void attachFileToBlogEntry(String blogTitle,   
  2.   InputStream uploadInputStream) throws BlogApplicationException {   
  3.     Session session = JackrabbitPlugin.getSession();   
  4.     Node blogEntryNode = getBlogEntryNode(blogTitle, session);   
  5.     blogEntryNode.setProperty(PROP_ATTACHMENT, uploadInputStream);   
  6.     session.save();   
  7.   
  8. }   
  9. public InputStream getAttachedFile(String blogTitle) throws BlogApplicationException {   
  10.     InputStream attachFileIS = null;   
  11.     Node blogEntryNode = getBlogEntryNode(blogTitle);   
  12.     Value attachFileValue = (Value) blogEntryNode.getProperty(PROP_ATTACHMENT).getValue();   
  13.     attachFileIS = attachFileValue.getStream();   
  14.   return attachFileIS;   
  15. }  
正如你看到的那样,我们的代码在处理二进制内容和一般内容间并没有什么太大的区别。仅仅一点不同的是你要通过InputStream 对象来保存和获取二进制数据。在我们的配置文件里关于persistent manager会有一个externalBLOBs 属性。把这个属性设为true, 图片将会保存在文件里,相反则会保存在数据库的blob字段里。

总结
到这里,我们对 JSR-170, Jackrabbit以及如何使用 JSR-170 API开发一个简单的应用程序都有了大概的了解。我们的讨论更多的在于基础。相信大家一定会对内容仓库有个初步的认识。

你可能感兴趣的:(cms,jcr)