環境:

MyEclipse Enterprise Workbench

Version: 8.5
Build id: 8.5-20100319

WindowsXp

1.切換到數據庫視圖.在DB Browser窗口中找到 MyEclipse Derby 單擊右件選擇new.

2.

Driver template: 選擇derby;

Driver name: 隨便比如 MyDB;

Connection URL : jdbc:derby://localhost:1527/MyDb;create=true

說明:create=true 表示創建

Username:zhangsan Password:123456

Driver JARs:

C:/Program Files/Genuitec/MyEclipse 8.5/configuration/org.eclipse.osgi/bundles/13/1/.cp/lib/derbyclient.jar;(成功)

Driver classname = org.apache.derby.jdbc.ClientDriver

或者

C:/Program Files/Genuitec/MyEclipse 8.5/configuration/org.eclipse.osgi/bundles/13/1/.cp/lib/derby.jar;(我測試沒有成功)

Driver class


3.測試一下

drop table guestbook;  
create table guestbook (  
id int primary key generated by default as identity (START WITH 1, INCREMENT BY 1),  
name varchar(20) not null,   
email varchar(20),   
phone varchar(20),   
title varchar(50) not null,   
content varchar(2000) not null,   
time date not null   
);  
insert into guestbook (id,name,email,phone,title,content,time)    
values(DEFAULT,'lala','gudong@163.com','13991736400','ok','okcontent',CURRENT DATE);  
select * from guestbook; 

4.java中調用(如果出現不能偵聽1527的錯誤,請重新啟動Derby);
    package webbook.chapter5;  
    import java.sql.Connection;  
    import java.sql.DriverManager;  
    import java.sql.PreparedStatement;  
    import java.sql.ResultSet;  
    import java.sql.SQLException;  
      
    public class JDBCExample {  
     public static void main(String[] args) {  
      String driver = "org.apache.derby.jdbc.ClientDriver";  
      String url = "jdbc:derby://localhost:1527/MyDB";  
      String username = "zhangsan";  
      String password = "123456";  
      String sql = "insert into guestbook (id,name,email,phone,title,content,time)"    
       +"values(DEFAULT,?,?,?,?,?,CURRENT DATE)";  
      
    /*DEFAULT Derby中的自動增長 CURRENT DATE當前時間*/  
      Connection conn = null;  
      try{  
       Class.forName(driver);   
       conn = DriverManager.getConnection(url, username, password);  
       PreparedStatement pstmt = conn.prepareStatement(sql);  
       pstmt.setString(1, "gudong");  
       pstmt.setString(2, "ZhangFei@163.com");  
       pstmt.setString(3, "110");  
       pstmt.setString(4, "title");  
       pstmt.setString(5, "content");  
       pstmt.executeUpdate();  
         
       sql="select * from guestbook ";  
       pstmt = conn.prepareStatement(sql);  
       ResultSet rs = pstmt.executeQuery();  
      
       while(rs.next()){  
        System.out.println("id:"+rs.getInt("ID"));  
        System.out.println("name:"+rs.getString("NAME"));  
        System.out.println("email:"+rs.getString("EMAIL"));  
        System.out.println("phone:"+rs.getString("PHONE"));  
        System.out.println("title:"+rs.getString("TITLE"));  
        System.out.println("content:"+rs.getString("content"));  
        System.out.println("date:"+rs.getString("time"));  
       }  
      
       if (rs != null) {  
        rs.close();  
       }  
       if (pstmt != null) {  
        pstmt.close();  
       }  
      } catch (ClassNotFoundException e) {  
       e.printStackTrace();   
      } catch (SQLException e) {  
       e.printStackTrace();  
      } finally {  
       if (conn != null) {  
        try {  
         conn.close();  
        } catch (SQLException e) {  
         e.printStackTrace();  
        }  
       }  
      }  
     }  
    }

-----------------------------------------
Myeclipse Derby使用指南【轉】


一.Derby介紹
Apache Derby是開源的,100% Java編寫的,容易管理的關系數據庫管理系統,它可以和一些商業產品的特性進行交付。
Apache Derby 是一個與平臺無關的數據庫引擎,它以 Java 類庫的形式對外提供服務。與其他難以部署的數據庫不同,安裝 Derby 非常簡單,只需要將其 .jar 文件復制到系統中并為您的項目添加該 .jar 文件即可。

Derby擁有一個令人驚奇的特性列表。它可以支持關系數據庫中的所有企業級的特性,包括崩潰恢復、事務回滾和提交、行/表級鎖、視圖、主鍵/外鍵約束、觸發器、子查詢表達式,等等。一部分的列表特性使Derby從其他的Java 關系數據庫管理系統中分離出來,包括:
         100% Java實現
         100% Java類型4 JDBC驅動
         SQL92E標準支持大部分SQL 99特性
       ACID完全的事務獨立的事務支持
         J2EE支持JNDI,連接池和XA
         視圖,臨時表和保存
         BLOB和CLOB數據類型
         行和表鎖定
         有價值的基本查詢優化
         服務器端指示約束
         觸發器和存儲過程
         為服務器端函數,觸發器或存儲過程等操作在數據庫里存儲Java代碼
         能排除CD-ROM里的只讀數據庫
         數據的導入和導出
         快速數據庫加密選項
您可以采用兩種模式來部署和運行Derby:
   在嵌入式模式(embedded mode)中,Derby只處理來自與應用程序使用的JVM相同的JVM的請求。在采用嵌入式模式來使用Derby時,應用程序會在啟動和關閉時分別自動啟動或停止關系引擎。Derby包的derby.jar文件(2MB)包含了Derby 數據庫引擎和嵌入式JDBC驅動程序。嵌入式模式的主要優點是不需要進行網絡 和服務器設置。因為你的應用程序包含了Derby引擎,使用者并不知道你使用了一個關系數據庫。這點很適合我們現在桌面工具的使用要求。
在網絡服務器模式(network server mode)中,Derby會處理來自不同JVM的應用程序請求?;蛘?,如果您喜歡使用Perl、PHP、Python或C來編寫程序,那么您也可以部署一個Derby網絡服務器,并通過各種語言特有的模塊連接到這個服務器上,例如Perl的DBI(Database Interface)和PHP的ODBC(Open Database Connectivity)。Derby的derbynet.jar文件(0.2MB)包含了Derby Network Server。

另外,Derby提供了Eclipse的插件供開發人員使用,下面將介紹插件的安裝及使用。

二.Derby安裝與使用
1.軟件的下載
你可以在Derby的官方網站下載,同時也可以下載Derby的兩個Eclipse插件:derby_core_plugin和derby_ui_plugin;在下面使用前,請安裝好JVM 1.4.x或更高版本;以及Eclipse 3.x。
2. Derby的Eclipse的插件安裝與使用。
安裝插件
    Derby插件的安裝與其他Eclipse插件安裝類似,只需要將之前下載的兩個插件解壓到Eclipse plugins目錄下,然后重新啟動Eclipse即可。   :
使用插件
    在使用該插件前,我們先創建一個Java項目,取名為DerbyDemo,然后在Package Explorer視圖選擇該項目,單擊右鍵選擇菜單[Apache Derby]->[Add Apache Derby Nature],如圖:


接下來是配置Derby相關屬性,在Package Explorer視圖選擇項目單擊[Properties]在左邊的屬性列表中選擇Apache Derby;并將 Derby 的主目錄設為不同于項目根目錄的某個目錄,例如D:/derbyDB,如圖:

配置完畢后,我們就可以啟動Derby服務器了,在Package Explorer視圖選擇項目單擊[Apache Derby]->[Start Derby Network Server];控制臺將輸出Derby的啟動信息,啟動就完成。
同樣的,Derby 服務器的關閉也是類似的,在Package Explorer視圖選擇項目單擊[Apache Derby]->[Stop Derby Network Server]。

2.嵌入運行模式
   將derby.jar 和derbytools.jar導入工程
   下面是連接數據庫的代碼片斷,create=true表示創建一個新數據庫
import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.ResultSet;
 import java.sql.Statement;

 public class TestDerbyBaisc {
     public static void main(String[] args) {
         try {          
             Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();//加載驅動
             Connection conn = DriverManager.getConnection("dbc:derby:TESTDB;create=true");//連接數據庫
             Statement st = conn.createStatement();
             st.execute("create table USER_INFO (ID INT NOT NULL,NAME VARCHAR(10) NOT NULL)");//建表
             st.executeUpdate("insert into USER_INFO(ID,NAME) values (1,'hermit')");//插入數據
             st.executeUpdate("insert into USER_INFO(ID,NAME) values (2,'test')");//插入數據
             ResultSet rs = st.executeQuery("select * from USER_INFO");//讀取剛插入的數據
             while(rs.next()){
                 int id = rs.getInt(1);
                 String name = rs.getString(2);
                 System.out.println("ID="+id);
                 System.out.println("NAME="+name);
             }
         } catch(Exception e){
             e.printStackTrace();
         }
     }
 }