Derby安装使用说明

Derby数据库 

概述

  Derby是Apache组织提供一个基于java和SQL的关系数据库管理系统。Derby是用纯java编写和实现的,它可以紧密的嵌入到任何基于Java解决方案应用中。Derby提供两种部署方式:嵌入式和服务器模式。嵌入式:Derby被单个用户的Java应用程序使用,在这种模式下,Derby和应用程序运行在同一个JVM中。Derby对于终端用户几乎是透明的,因为它的启动和终止都是由应用程序来控制,而不需要任何的管理。

服务器模式:Derby由应用程序启动,此时通过用户可以通过网络连接。在这种模式下,Derby运行在服务器主机的JVM中。其他JVM的应用程序通过连接服务器来访问数据库。

 

下载

下载地址:http://db.apache.org/derby/derby_downloads.html

笔者在这里使用最新版本

 

derby嵌入式数据库开发简单流程

1. 在db.apache.org/derby页面中download页面下载bin包;

 

2. 解压缩bin包到一个磁盘中,并在环境变量中设置该路径名称为DERBY_HOME;

 

3. 将DERBY_HOME中的lib文件夹下两个重要的jar包添加到classpath环境变量中:

%DERBY_HOME%\lib\derby.jar;

%DERBY_HOME%\lib\derbytools.jar;

 

4. 运行命令行,进入待生成数据库文件夹的位置,准备生成数据库文件(该文件将不依赖于具体的路径,如果不是项目路径,在生成数据库后,也可以直接将数据库文件复制到程序路径下);

 

5. 进入derby工作模式:

java org.apache.derby.tools.ij

 

6. 新建数据库:

connect 'jdbc:derby:hxy;create=true';

其中hxy表示新建立数据库的名称,该名称也将作为生成的数据库的文件夹名称出现在当面操作目录下。create属性在数据库文件不存在的情况下是否创建该数据库,默认为false,可以不填写。

 

7. 创建表格:

create table employee(id integer not null,name varchar(40) not null,primary key(id));

 

8. 填充数据:

insert into employee values (1, 'John Smith');

 

9. 查询结果:

select * from employee;

(注意每一个命令都需要用分号结尾,对于没有使用分号结尾的命令,即使使用回车另起一行也不执行,这个行为和mysql的命令行类似。)

 

10. 退出数据库:

exit;

 

11. 将数据库文件复制到项目文件夹下(如果直接在项目文件夹下建立,则无需该操作);

 

12. 在项目中创建访问hxy数据库的java文件:

package org;

import java.sql.*;
public class TableFiller {
private Connection conn = null;
private PreparedStatement insertEmployee = null;
               
String driverName ="org.apache.derby.jdbc.EmbeddedDriver";
String url ="jdbc:derby:hxy";

public void loadDrivers() throws SQLException,ClassNotFoundException {
  
   Class.forName(driverName);
   conn = DriverManager.getConnection(url);
  
   insertEmployee = conn.prepareStatement("INSERT INTO Employee VALUES(?, ?)");
}

public static void main(String args[])throws Exception {
   TableFiller tf = new TableFiller();
   tf.loadDrivers();
  
   for (int i=1; i<1001; i++) {
    String empoloyeeNum = "" + i;
            tf.addEmployee(empoloyeeNum, "employee #" + i);
            System.out.print("\n" + empoloyeeNum);
                       
        }
        tf.closeAll();
}

public void addEmployee(String id, String employeeName)throws SQLException {
        insertEmployee.setString(1, id);
        insertEmployee.setString(2, employeeName);
        insertEmployee.executeUpdate();
}

public void closeAll()throws SQLException {
   insertEmployee.close();
   
   conn.close();
}

}

该访问方式是通过相对路径的方式,也可以处于安全考虑,将数据文件存储到一个绝对路径下。

 

13. 进入控制台,验证查询结果,查看是否按照程序执行,插入1000条数据。

注:程序执行后,对于derby数据库的独占就取消,因此可以通过命令行的方式来访问hxy数据库,否则访问会出现无法连接的情况。

暂时就这些心得,随着之后的使用,可能会更加深入介绍derby的其他内容。

 

 

 

Derby eclipse插件安装

安装Derby Plugin到Eclipse:
首先从Derby下载页面 查找最新官方发布的版本(或者需要的版本),下载derby_core_plugin 和 derby_ui_plugin这两个必须的Eclipse插件下载到计算机,并解压缩到Eclipse目录下的plugins文件夹下。注意,压缩包中所有文件可能都默认在plugin文件夹下,所以解压缩後,將得到plugin文件夹(也可能会叫plugin(1))下的所有文件拷贝到eclipse安装目录下的plugin文件夹中。
被拷贝的文件应该是org.apache.derby.core_10.6.2, org.apache.derby.ui_1.1.2, 和 org.apache.derby.plugin.doc_1.1.2这样3个名称的(根据下载选择,版本号会有不同)。

使用Derby同Eclipse
首先,添加DerbyJava项目。运行Eclipse(如果Eclipse在安装Derby前就开着,请重新启动Eclipse)。在Package Explorer中选择Java项目,右键,依次选择Apache Derby,Add Apache Derby nature.到此,添加Derby完成。
你可以再次在项目上点击右键,Apache Derby,选择sysInfo(Derby System Information),便能在Eclipse的控制台输出中看到Derby系统信息。如下:

 

 

在使用hibernate的访问derby的时候,遇到了一个问题,就是如何映射boolean类型的数据呢?

搜索版体半天无果。

原来derby不支持boolean,

来源http://db.apache.org/ddlutils/databases/derby.html

JDBC Type

Database Type

Additional comments

ARRAY

BLOB

Will be read back as BLOB

BIGINT

BIGINT

 

BINARY

CHAR(n) FOR BIT DATA

 

BIT

SMALLINT

Cloudscape/Derby have no native boolean type
Will be read back as SMALLINT

BLOB

BLOB

 

BOOLEAN

SMALLINT

Cloudscape/Derby have no native boolean type
Will be read back as BOOLEAN

CHAR

CHAR

 

CLOB

CLOB

 

DATALINK

LONG VARCHAR FOR BIT DATA

Will be read back as LONGVARBINARY

DATE

DATE

 

DECIMAL

DECIMAL

 

DISTINCT

BLOB

Will be read back as BLOB

DOUBLE

Cloudscape: DOUBLE PRECISION
Derby: DOUBLE

 

FLOAT

Cloudscape: DOUBLE PRECISION
Derby: DOUBLE

Will be read back as DOUBLE

INTEGER

INTEGER

 

JAVA_OBJECT

BLOB

Will be read back as BLOB

LONGVARBINARY

LONG VARCHAR FOR BIT DATA

 

LONGVARCHAR

LONG VARCHAR

 

NULL

LONG VARCHAR FOR BIT DATA

Will be read back as LONGVARBINARY

NUMERIC

NUMERIC

 

OTHER

BLOB

Will be read back as BLOB

REAL

REAL

 

REF

LONG VARCHAR FOR BIT DATA

Will be read back as LONGVARBINARY

SMALLINT

SMALLINT

 

STRUCT

BLOB

Will be read back as BLOB

TIME

TIME

 

TIMESTAMP

TIMESTAMP

 

TINYINT

SMALLINT

Will be read back as SMALLINT

VARBINARY

VARCHAR(n) FOR BIT DATA

 

VARCHAR

VARCHAR

 

 

转载于:https://my.oschina.net/guoenzhou/blog/383267

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值