黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

openfire 數據庫

系統 2062 0

關于數據庫有三個地方需要注意:

1.plugin.xml數據庫及其版本的相關配置

2.系統自帶表 ofVersion表中,關于插件數據庫的版本記錄

3.database下相關sql文件(對應表的創建或更新),并向ofVersion中插一條字段(記錄插件數據庫版本)。

?

首先說下個人對 OpenFire 插件數據庫加載的理解:

只要會用的話,不需要看此。或者看完數據庫的創建步驟知道怎么回事,再來看這里的理解也行)

1) plugin.xml 中配置數據庫(及其版本),知道要需要哪個版本之后,

2) ofVersion 查詢相關插件字段 version

?????????????????? ???????? a) 發現沒有該插件 字段,去執行 sql (創建表) .

b) 如果有字段,看 version 的值( int 類型, 1 2 3 等)。需要版本比字段值高,更新數據庫。需要版本比 version 值低,不更新。 版本號一定是 Int 類型

?

3) 在更新數據庫的同時需要更新自己升級的表,還要修改 ofversion 這個表。

openfire 數據庫

?

?

Sql文件

結構 插件根目錄/src/database/ sql文件

Sql文件命名: 插件名_數據庫.sql

openfire 數據庫

?

      # $Revision$
# $Date$
INSERT INTO ofVersion (name, version) VALUES ('myplugin',0);
CREATE TABLE ofMypluginTest
 (
  id int(11) NOT NULL,
  username varchar(30) DEFAULT NULL,
  password varchar(30) DEFAULT NULL,
  PRIMARY KEY (id)
 );

    

?

一定要往 ofVersion 表中 插入你插件數據庫 版本記錄。有了這條記錄, OpenFire 再去加載這個插件的時候,發現 ofVersion 有這個插件 記錄,就不會再在去執行 sql 語句

?

plugin.xml 中加兩行

關于 database 的配置。下面代碼的最后兩行即可。

      <version>1.0.0.1</version>
<date>24/11/2013</date>
<url>http://localhost:9090/openfire/plugins.jsp</url>
<minServerVersion>3.4.1</minServerVersion>
<licenseType>gpl</licenseType>
<databaseKey>myplugin</databaseKey>
<databaseVersion>0</databaseVersion>

    

?

啟動 OpenFire ,加載插件,就顯示數據庫更新成功

?

數據庫更新

首先更新sql文件,不修改。添加即可

方法:插件根目錄/src/database/upgrade/1/插件sql或database /upgrade/2/插件sql

?

?

例如:plugins/myplugin/src/database/upgrade/1/myplugin_mysql.sql

openfire 數據庫

示例 Slq 文件:

      -- $Revision$
-- $Date$
ALTER TABLE ofMypluginTest ADD COLUMN age int(2) NULL;
ALTER TABLE ofMypluginTest ADD COLUMN address VARCHAR(255) NULL;
-- Update database version
UPDATE ofVersion SET version = 1 WHERE name = 'myplugin';

    

?

注意: 更新語句,盡量先更新表,再更新 ofVersion version 字段的值。

?

萬一你寫的 sql 有問題,只更新了 version 值變成了新版本,表更新失敗,再去加載插件時候,就不會再執行 sql. 創建表。

?

大致分析一下版本不對應的情況

(開發者盡量使版本對應)

由于情況較多,直接舉例說明了

?

myplugin插件 plugin.xml要用版本 0,ofVersion表中,沒有myplugin 0這條自動。執行sql,創建表,插入一條數據。(假如沒有sql文件,數據庫更新失敗)

?

plugin.xml要用版本2,version字段為1,執行database/2/ sql文件。如果沒有2這個文件夾和相應sql,顯示數據庫更新成功。(其實沒有更新數據庫)

?

?

?

openfire 數據庫


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論