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

使用 Apache Derby 开发 Eclipse 插件

 2009-12-14 00:00:00 来源:WEB开发网   
核心提示: 向新创建的插件中添加 Derby 支持即是指定 Derby 内核插件上的依赖性,您可以通过在打开 sample_derby 项目中打开 plugin.xml 文件,使用 Apache Derby 开发 Eclipse 插件(3),然后在 Dependencies 选项卡的 Required Pl

向新创建的插件中添加 Derby 支持即是指定 Derby 内核插件上的依赖性。您可以通过在打开 sample_derby 项目中打开 plugin.xml 文件,然后在 Dependencies 选项卡的 Required Plug-ins 部分种选择与 org.apache.derby.core 的依赖性来完成指定操作(参见图 3)。完成后,插件就可以使用 Derby 类。


图 3. 插件依赖性编辑器
使用 Apache Derby 开发 Eclipse 插件

现在您可以了解如何通过扩展插件为本地数据库的 Records 表提供简单的记录计数器来操作简单的 Derby 数据库。此表包含关于数据库中保存的记录数目的信息。单击按钮后,记录数加一,并且显示具有当前记录数的对话框。首先,打开定义负责 Sample Action 的类的 SampleAction.java 文件,然后创建一个名为 queryRecords 的新方法。此时,您还只能连接至现有数据库。或者,如果相应的数据库不存在,系统将创建一个新数据库并始终返回 0(参见清单 1)。


清单 1. Derby 初始化代码

public class SampleAction implements IWorkbenchWindowActionDelegate { 
/* ...code skipped here... */ 
 
/** driver string. */ 
private static final String DRIVER = "org.apache.derby.jdbc.EmbeddedDriver"; 
/** protocol string. */ 
private static final String PROTOCOL = "jdbc:derby:"; 
/** database name string. */ 
private static final String DATABASE = "sampleDB"; 
 
/** SQL script for creating Categories table. */ 
private static final String CREATE_TABLE = "CREATE TABLE Records" 
   + "(" 
   + "quantity int" 
   + ")"; 
 
/* ...code skipped here... */ 
 
/** 
* Connects to database, inserts one record into Records table 
* and then counts total records quantity in database. 
* If database does not exist, then new database is created.  
*/ 
private int queryRecords() 
    throws SQLException, IllegalAccessException, ClassNotFoundException, 
    InstantiationException { 
 
  Connection currentConnection = null; 
  System.setProperty("derby.system.home", 
    Sample_derbyPlugin.getDefault().getStateLocation().toFile().getAbsolutePath()); 
  Properties props = new Properties(); 
 
  try { 
    Class.forName(DRIVER).newInstance(); 
    currentConnection = DriverManager.getConnection(PROTOCOL 
      + DATABASE, props); 
 
  } catch (SQLException sqlException) { 
    //trying to create database 
    currentConnection = DriverManager.getConnection(PROTOCOL 
      + DATABASE + ";create=true", props); 
    try { 
      Statement s = currentConnection.createStatement(); 
      try { 
        s.execute(CREATE_TABLE); 
      } finally { 
        s.close(); 
      } 
      currentConnection.commit(); 
    } catch (SQLException ex) { 
      currentConnection.close(); 
      throw ex; 
    } 
  } 
  return 0; 
} 

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

Tags:使用 Apache Derby

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