zoukankan      html  css  js  c++  java
  • 【openfire插件开发】数据库处理部分(openfire数据库模式)

          我们都知道,openfire的二次开发一般都是以插件形式组织的。openfire已有数据库及数据表。今天我们来讲,我们进行插件开发的时候,如何创建自己的数据表,添加到openfire原有的数据库中。

     

    1.写数据库创建的脚本。

    插件src目录下新建database文件夹,目录结构如下所示:

     

    在database目录下新建testPlugin_mysql.sql,内容如下:

    INSERT INTO ofVersion (name, version) VALUES ('testplugin', 0);

    CREATE TABLE messageHistory (
    messageID BIGINT NOT NULL auto_increment,
    date VARCHAR(15) NOT NULL,
    fromUsername VARCHAR(64) NOT NULL ,
    toUsername VARCHAR(64) NOT NULL,
    messageSize INT ,
    stanza TEXT NOT NULL,
    PRIMARY KEY (messageID)
    );

     

    INSERT INTO ofVersion (name, version) VALUES ('testplugin', 0);

     

    2.修改plugin.xml。添加两行语句:

      <databaseKey>testplugin</databaseKey>

          <databaseVersion>0</databaseVersion>

     

    3.编译testPlugin插件,并运行openfire。我们看到控制台输出:

     

     

    4.我们可以打开数据库,看到已经新建了一个数据表。如下图:

     

           总结:我们看到,我们已经创建了自己的数据库表,并已与openfire原有的数据库表整合在了一起。如果我们要对数据表进行操作的话,可以用类似下面的语句:

    Connection con = null;

    PreparedStatement pstmt = null;

    String sql =INSERT INTO messageHistory(date, fromUsername, toUsername, messageSize, stanza) VALUES('20111212', 'hcc', 'erin', '10', 'this is your content')”;

    DbConnectionManager.getConnection();

    pstmt = con.prepareStatement(sql);

    pstmt.executeUpdate();

           下次有时间讲讲Interceptor,或者简单工厂模式/策略模式吧。


     

  • 相关阅读:
    我的友情链接
    我的友情链接
    BUMO:超级节点共建接口
    OpenStack 对接 Ceph 环境可以创建卷但不能挂载卷的问题
    零知识证明: 抛砖引玉
    比特币原理
    区块链零知识证明:STARKs,Part-3:攻坚(下)
    什么是zkSNARKs:谜一般的“月亮数学”加密,Part-1
    什么是zkSNARKs:谜一般的“月亮数学”加密,Part-2
    STARKs, Part I: 多项式证明
  • 原文地址:https://www.cnblogs.com/ErinCodeMM/p/2285079.html
Copyright © 2011-2022 走看看