WEB开发网
开发学院软件开发Java 使用 Apache Derby 开发 Eclipse 插件 阅读

使用 Apache Derby 开发 Eclipse 插件

 2009-12-14 00:00:00 来源:WEB开发网   
核心提示: 本文附带了即用的样例资源索引器应用程序,它将监视由插件定义并具有名为 Sample Nature 特性的 Eclipse 工作区的项目中的所有资源(文件),使用 Apache Derby 开发 Eclipse 插件(6),应用程序将把关于资源的信息存储到 Derby 数据库中并将提供一个允许您搜

本文附带了即用的样例资源索引器应用程序。它将监视由插件定义并具有名为 Sample Nature 特性的 Eclipse 工作区的项目中的所有资源(文件)。应用程序将把关于资源的信息存储到 Derby 数据库中并将提供一个允许您搜索文件的名为 Resources View 的视图。

在此部分中,您将亲历创建应用程序的主要步骤。开发 Eclipse 插件 GUI 这类典型步骤将被忽略,您将重点关注于用 Derby 进行插件开发。

连接池数据源管理器

由于是通过 JDBC 访问 Derby 数据库,因此最好使用 Derby 的 ConnectionPoolDataSource 接口实现管理数据库连接。ConnectionPoolDataSource 始终保持若干个与数据库的开放连接,因此无需在每次需要操作数据库时都打开新连接,从而加速了进程。另外,ConnectionPoolDataSource 避免了在应用程序同时打开与数据库的若干个连接的情况下发生冲突。

您将使用 Derby JDBC 驱动程序附带的名为 EmbeddedConnectionPoolDataSource 的类。在清单 5 中,创建 PerUserPoolDataSource 类的一个实例并将 EmbeddedConnectionPoolDataSource 类的实例设为其连接池数据源。


清单 5. 初始化 Derby 数据源
  /** 
* Datasource to use for connection. 
*/ 
private static PerUserPoolDataSource datasource; 
 
/** 
* Initializes database and creates datasource instance for it. 
*/ 
public static void initDatasource () { 
  EmbeddedConnectionPoolDataSource connectionPoolDatasource; 
 
  connectionPoolDatasource = new EmbeddedConnectionPoolDataSource(); 
  connectionPoolDatasource.setDatabaseName( 
    ResourcesIndexerPlugin.getDefault().getStateLocation(). 
    toFile().getAbsolutePath() + "/resourcesDB"); 
  connectionPoolDatasource.setCreateDatabase("create"); 
     
  datasource = new PerUserPoolDataSource(); 
  datasource.setConnectionPoolDataSource(connectionPoolDatasource); 
  datasource.setDefaultAutoCommit(false); 
     
  try { 
    Connection connection = datasource.getConnection(); 
    try { 
      Statement statement = connection.createStatement(); 
      // searching for Resources table in database and 
      // if there is no one then initialize database 
      try { 
        statement.execute("SELECT 1 FROM "); 
      } catch (SQLException ex) { 
        ResourcesDatabaseInitializer.initDatabase(connection);      
      } finally { 
        statement.close(); 
      } 
      connection.commit(); 
    } finally { 
      connection.close(); 
    } catch (SQLException ex) { 
      // Error handling here 
    } 
  } 
} 

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:使用 Apache Derby

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接