环境:

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();
         }
     }
 }