xwiki数据库介绍

此图显示了内部类到数据库表的映射
表格顶部左边表示表名(如xwikidoc),右边表示Java类(如XWikiDocument)
表格第二行起,在左边列表示表中列的名称,在右边列表示可以通过对应类get方法访问这些值
通过sql查询语句:

SELECT doc.XWD_TITLE FROM xwikidoc AS doc WHERE doc.XWD_FULLNAME = 'Main.WebHome'

在一个Hibernate查询,你可以使用相同的名称作为get方法(会将方法去掉get并且将第一个字母小写),等同于HQL查询语句:

SELECT doc.title FROM XWikiDocument AS doc WHERE doc.fullName = 'Main.WebHome'

因为XWD_TITLE映射为getTitle()(去除get以及第一字母小写,即title)

xwiki数据库介绍

以下所有表构成XWiki数据库schema。简单的介绍一下该schema下的表,可以给你一个线索了解底层系统如何工作。粗略地说,为了支持动态定义的数据类型, 文档(documents)的元数据被存储在一个表, 对象被存储在另一个表中,然后将对象属性(properties)的值被存储在各自表(如xwikifloats、xwikiintegers)里,取决于属性的类型(如doubles、integers等)

注意,不同于mysql的数据库可能会有轻微的差异,但如果是这样的话,他们还没有被记录在案

按字母顺序

  • xwikiattachment
  • xwikiattachment_archive
  • xwikiattachment_content
  • xwikiattrecyclebin
  • xwikidates
  • xwikidbversion
  • xwikidoc
  • xwikidoubles
  • xwikifloats
  • xwikiintegers
  • xwikilargestrings
  • xwikilinks
  • xwikilistitems
  • xwikilists
  • xwikilock
  • xwikilongs
  • xwikiobjects
  • xwikiproperties
  • xwikiircs
  • xwikirecyclebin
  • xwikistringclasses
  • xwikistrings
  • xwikistringlists

用于XWiki类的自定义映射表

  • xwikicomments
  • xwikipreferences

注意:comments 自定义映射默认情况下禁用,因此xwikicomments表是空的

统计插件表

如果统计插件没有启用,那么这些表都是空的

  • xwikistatsdoc
  • xwikistatsreferer
  • xwikistatsvisit

废弃表

这些不再使用,类信息现在以XML格式存储在在xwikidocXWD_CLASS_XML列里

  • xwikibooleanclasses
  • xwikiclasses
  • xwikiclassesprop
  • xwikidateclasses
  • xwikidblistclasses
  • xwikinumberclasses
  • xwikilistclasses
  • xwikistringclasses