0,版本

在下载,要求JRE版本不低于1.5.

1,设置环境

假设:

DERBY安装路径:D:\dev\db-derby-10.8.2.2-bin

用户环境变量设置如下:

myenv.bat:

set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_04

set PATH=%JAVA_HOME%\bin;%PATH%

set DERBY_INSTALL=D:\dev\db-derby-10.8.2.2-bin

set CLASSPATH=%DERBY_INSTALL%\lib\derby.jar;%DERBY_INSTALL%\lib\derbytools.jar;%DERBY_INSTALL%\lib\derbynet.jar;%DERBY_INSTALL%\lib\derbyclient.jar;.

2,验证Derby

java org.apache.derby.tools.sysinfo

------------------ Java 信息 ------------------

Java 版本:        1.6.0_04

Java 供应商:      Sun Microsystems Inc.

Java 主目录:      C:\Program Files\Java\jdk1.6.0_04\jre

Java 类路径:      D:\dev\db-derby-10.8.2.2-bin\lib\derby.jar;D:\dev\db-derby-10

.8.2.2-bin\lib\derbytools.jar;.

OS 名:            Windows XP

OS 体系结构:      x86

OS 版本:          5.1

Java 用户名:      mahong

Java 用户主目录:C:\Documents and Settings\mahong

Java 用户目录:    D:\dev\db-derby-10.8.2.2-bin

java.specification.name: Java Platform. API Specification

java.specification.version: 1.6

java.runtime.version: 1.6.0_04-b12

--------- Derby 信息 --------

JRE - JDBC: Java SE 6 - JDBC 4.0

[D:\dev\db-derby-10.8.2.2-bin\lib\derby.jar] 10.8.2.2 - (1181258)

[D:\dev\db-derby-10.8.2.2-bin\lib\derbytools.jar] 10.8.2.2 - (1181258)

------------------------------------------------------

----------------- 语言环境信息 -----------------

当前语言环境:  [中文/中国 [zh_CN]]

找到支持的语言环境:[cs]

版本:10.8.2.2 - (1181258)

3,访问嵌入式数据库

窗口1:

启动数据库实例。

D:\dev\derby_db>java org.apache.derby.drda.NetworkServerControl start

窗口2:

D:\dev\java org.apache.derby.tools.ij

ij 版本 10.8

ij>connect 'jdbc:derby:MyDbTest;create=true';

lj>exit;

在当前路径下生成MyDbTest目录,并产生Derby.log日志文件.

这种方式下,数据库实例与应用程序在同一个JVM内.

4,访问服务器数据库

--窗口1:

--启动网络服务器

D:\dev\derby-db>java -jar %DERBY_INSTALL%\lib\derbyrun.jar server start

Wed Jun 06 19:34:35 CST 2012 : 已使用基本服务器安全策略安装了安全管理程序。

Wed Jun 06 19:34:35 CST 2012 : Apache Derby 网络服务器 - 10.8.2.2 - (1181258)

已启动并准备接受端口 1527 上的连接

--窗口2:

--以客户端方式连接:

D:\dev\java org.apache.derby.tools.ij

ij 版本 10.8

ij> connect 'jdbc:derby://localhost:1527/MyDbTest;create=true';

==>创建了数据库MyDbTest,在启动server的目录下.

ij> create table dept(deptno int not null,name varchar(30));

已插入/更新/删除 0 行

ij> alter table dept add constraint pk_dept primary key(deptno);

已插入/更新/删除 0 行

ij> create table emp(empno int,name varchar(40),addr varchar(40),deptno int);

已插入/更新/删除 0 行

ij> alter table emp add constraint fk_emp_r_dept foreign key(deptno) references

dept(deptno);

已插入/更新/删除 0 行

ij> insert into emp values(1,'name1','addr1',1);

错误 23503:表“EMP”上的 INSERT 导致违反键 (1) 的外键约束“FK_EMP_R_DEPT”。语

句已回滚。

==>外键约束

ij> insert into dept values(1,'deptname1');

已插入/更新/删除 1 行

ij> insert into emp values(1,'name1','addr1',1);

已插入/更新/删除 1 行

ij> commit;

ij> insert into emp values(2,'name2','addr2',1);

已插入/更新/删除 1 行

ij> rollback;

ij>exit;

--关闭服务器:

D:\dev\java -jar %DERBY_INSTALL%\lib\derbyrun.jar server shutdown

--窗口1:

--重新启动服务器

D:\dev\derby_db>java -jar %DERBY_INSTALL%\lib\derbyrun.jar server start

Wed Jun 06 20:20:32 CST 2012 : 已使用基本服务器安全策略安装了安全管理程序。

Wed Jun 06 20:20:32 CST 2012 : Apache Derby 网络服务器 - 10.8.2.2 - (1181258)

已启动并准备接受端口 1527 上的连接

--窗口2:

--启动客户端查询结果

D:\dev>java org.apache.derby.tools.ij

ij 版本 10.8

ij> connect 'jdbc:derby://localhost:1527/MyDbTest';

ij> select * from emp;

EMPNO      |NAME                                    |ADDR

|DEPTNO

--------------------------------------------------------------------------------

-------------------------

1          |name1                                   |addr1

|1

2          |name2                                   |addr2

|1

已选择 2 行

==>通过测试表明:服务器启动时,并没有检查并打开数据库;只有在客户端访问时,在启动服务器的目录下创建或查找指定数据库;

启动一个服务器,可以同时支持客户端对多个数据库的访问.

5,测试java程序

窗口1:

启动数据库实例。

D:\dev\derby_db>java org.apache.derby.drda.NetworkServerControl start

窗口2:

D:\dev\db-derby-10.8.2.2-bin\demo\programs\simple>javac SimpleApp.java

注意:SimpleApp.java 使用了未经检查或不安全的操作。

注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。

D:\dev\db-derby-10.8.2.2-bin\demo\programs\simple>java SimpleApp derbyclient

SimpleApp starting in derbyclient mode

Loaded the appropriate driver

Connected to and created database derbyDB

Created table location

Inserted 1956 Webster

Inserted 1910 Union

Updated 1956 Webster to 180 Grand

Updated 180 Grand to 300 Lakeshore

Verified the rows

Dropped table location

Committed the transaction

SimpleApp finished

关于如何与其他产品配合,分别参考:

Eclipse:

iBatis:

Tomcat:

6,导入/导出

在当前目录准备myfile.txt:

3,name3,addr3,1

4,name4,addr4,1

5,name5,addr5,1

6,name6,addr6,1

窗口1:

启动数据库实例。

D:\dev\derby_db>java org.apache.derby.drda.NetworkServerControl start

窗口2:

D:\dev\derby_db>java org.apache.derby.tools.ij

ij> connect 'jdbc:derby://localhost:1527/MyDbTest';

ij> CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE(

null,'EMP','myfile.txt',',',null,null,0);

ij> select * from emp;

EMPNO      |NAME                                    |ADDR

|DEPTNO

--------------------------------------------------------------------------------

-------------------------

1          |name1                                   |addr1

|1

2          |name2                                   |addr2

|1

已选择 2 行

ij> CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE(

null,'EMP','myfile.txt',',',null,null,0);

> 错误 XIE0R:文件 myfile.txt 中的第 4 行发生导入错误:在行 4 上的意外位置中读取

到 endOfFile。

错误 XIE0E:在行 4 上的意外位置中读取到 endOfFile。

==>最后以行需要换行

ij> CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE(

>     null,'EMP','myfile.txt',',',null,null,0);

已执行语句。

ij> select * from emp;

EMPNO      |NAME                                    |ADDR

|DEPTNO

--------------------------------------------------------------------------------

-------------------------

1          |name1                                   |addr1

|1

2          |name2                                   |addr2

|1

3          |name3                                   |addr3

|1

4          |name4                                   |addr4

|1

5          |name5                                   |addr5

|1

6          |name6                                   |addr6

|1

已选择 6 行

ij>CALL SYSCS_UTIL.SYSCS_EXPORT_TABLE(

null,'EMP','myfile.out',null,null,null);

==>在当前路径下生成文件myfile.out

1,"name1","addr1",1

2,"name2","addr2",1

3,"name3","addr3",1

4,"name4","addr4",1

5,"name5","addr5",1

6,"name6","addr6",1

--根据文档说明,还支持LOB字段的导入/导出。

7 备份恢复

7.1备份

窗口1:

启动数据库实例。

D:\dev\derby_db>java org.apache.derby.drda.NetworkServerControl start

窗口2:

D:\dev\derby_db>java org.apache.derby.tools.ij

ij> connect 'jdbc:derby://localhost:1527/MyDbTest';

ij> CALL SYSCS_UTIL.SYSCS_BACKUP_DATABASE('d:/dev/backup/2012-06-07');

==>会自动创建目录2012-06-07,将数据备份到该目录下。

ij> exit;

D:\dev\derby_db>java org.apache.derby.drda.NetworkServerControl shutdown

Thu Jun 07 08:13:25 CST 2012 : Apache Derby 网络服务器 - 10.8.2.2 - (1181258)

关闭

D:\dev\derby_db>rmdir /S Mydbtest

Mydbtest, 是否确认(Y/N)? y

D:\dev\derby_db>dir

驱动器 D 中的卷是 work

卷的序列号是 2044-0107

D:\dev\derby_db 的目录

2012-06-07  08:14.

2012-06-07  08:14    ..

2012-06-07  08:13             1,047 derby.log

2012-06-07  08:05               126 myfile.out

2012-06-07  08:02                68 myfile.txt

3 个文件          1,241 字节

2 个目录  8,345,808,896 可用字节

7.2恢复

窗口1:

D:\dev\derby_db>java org.apache.derby.drda.NetworkServerControl start

窗口2:

D:\dev\derby_db>java org.apache.derby.tools.ij

ij 版本 10.8

ij> connect 'jdbc:derby://localhost:1527/MyDbTest';

错误 08004:由于找不到数据库 MyDbTest,已拒绝连接。

ij> connect 'jdbc:derby://localhost:1527/MyDbTest;restoreFrom=d:/dev/backup/2012

-06-07';

错误 XJ040:DERBY SQL error: SQLCODE: -1, SQLSTATE: XJ040, SQLERRMC: 无法使用类

加载器 启动数据库 'MyDbTest',请参阅下一

个异常,以了解详细信息。::SQLSTATE: XBM0Q未找到文件 d:\dev\backup\2012-06-07\ser

vice.properties。请确保备份副本正确而且未损坏。

ij> connect 'jdbc:derby://localhost:1527/MyDbTest;restoreFrom=d:/dev/backup/2012

-06-07/MyDbTest';

ij> select count(*) from emp;

1

-----------

6

已选择 1 行

8 复制

Derby支持的复制有如下特点:

*基于事务日志

*只有主库处理事务,备库不支持事务,也不支持只读打开

*异步,主库提交事务与日志传送/应用无关(可能导致切换时丢失部分数据)

*一个实例可以同时充当多个角色(数据库D1的主库角色,数据库D2的从库角色,非复制数据库D3)

linux derby path,试用开源数据库ApacheDerby相关推荐

  1. 开源数据库 H2, HSQLDB, DERBY, PostgreSQL, MySQL区别/对比图表

    开源数据库 H2, HSQLDB, DERBY, PostgreSQL, MySQL区别/对比图表

  2. linux推出mysql对话_以及如何配置它以与Linux平台上的MySQL数据库对话

    Mirth Connect是一个开源集成引擎,主要用于医疗保健领域.这支持各种医疗保健标准(HL7,XML,EDI / X12,DICOM等),这些标准将帮助企业集成不同的系统,并使它们以共同的语言相 ...

  3. 35个非主流开源数据库

    几乎每个Web开发人员都有自己喜欢的数据库,或自己最熟悉的数据库,但最常见的无外乎以下几种: MySQL PostgreSQL MSSQL SQLite MS Access 或是更简单的XML,文本文 ...

  4. 盘点:三十五个非主流开源数据库

    盘点:三十五个非主流开源数据库 几乎每个Web开发人员都有自己喜欢的数据库,或自己最熟悉的数据库,但最常见的无外乎以下几种: MySQL PostgreSQL MSSQL Server SQLite ...

  5. Java开源数据库分类列表整理

    HSQLDB HSQLDB(Hypersonic SQL)是纯Java开发的关系型数据库,并提供JDBC驱动存取数据.支持ANSI-92 标准 SQL语法.而且他占的空间很小.大约只有160K,拥有快 ...

  6. 35个非主流开源数据库 你知道吗?

    [IT168 评论] 几乎每个Web开发人员都有自己喜欢的数据库,或自己最熟悉的数据库,但最常见的无外乎以下几种: MySQL PostgreSQL MSSQL SQLite MS Access 或是 ...

  7. 35个非主流开源数据库你知道吗?

    [IT168 评论] 几乎每个Web开发人员都有自己喜欢的数据库,或自己最熟悉的数据库,但最常见的无外乎以下几种: MySQL PostgreSQL MSSQL SQLite MS Access 或是 ...

  8. 三十五个非主流开源数据库

    (源自:http://www.lupaworld.com/article-206048.html) 摘要: 几乎每个Web开发人员都有自己喜欢的数据库,或自己最熟悉的数据库,但最常见的无外乎以下几种: ...

  9. 三十五个非主流开源数据库 MongoDB领衔主演

    几乎每个Web开发人员都有自己喜欢的数据库,或自己最熟悉的数据库,但最常见的无外乎以下几种: MySQL PostgreSQL MSSQL Server SQLite MS Access 或是更简单的 ...

最新文章

  1. 北京交大计算机学院王浩业,双胞胎双双“吹”进北交大
  2. windows server 2012 RC download.
  3. JWT【JSON Web Token】 简述
  4. 博古通今的孩子是怎么养成的?答案就在这本影响了无数中国人思想的奇书里……
  5. C#抽象类和抽象方法
  6. 《Essential C++》笔记之Iterator Inserter(插入迭代器)
  7. oracle如何查看某个时间段调用的函数的异常信息_每天14点遭遇惊魂时刻,如何一步一步揪出真凶?...
  8. 博弈论初步(SG函数)
  9. 卷积神经网络的重要知识点
  10. 数据库乱码,频繁中断
  11. r语言 新增一列数字类型_R语言实战之R语言基础语法精讲(一)
  12. Springboot初始化过程(1.5.9.RELEASE)(一)
  13. 微型计算机原理及应用 湖南大学,2015年微机原理及其应用-湖南大学.doc
  14. 华为ar路由器wed登陆和配置方法及故障问题
  15. 酷q java_组件-酷Q(QQ)-CQ HTTP API(基本失效)
  16. CSS3精灵(Sprites)技术
  17. 苹果4s怎么越狱教程_苹果u盘越狱教程
  18. 语音模块LD3320模块的二次开发,并与树莓派进行串口通信
  19. 读书笔记 | 自动驾驶中的雷达信号处理(第9章 汽车雷达的应用概述)
  20. 20条非常实用的Python代码实例

热门文章

  1. 金蝶云星空和金蝶云星空单据接口对接
  2. [附源码]Python计算机毕业设计SSM基于驾校管理系统(程序+LW)
  3. Mongo 命令总结
  4. 手把手教你搭建腾讯云服务器(图文并茂)
  5. NBA最新实力榜:五星勇士登顶 雄鹿位列第二
  6. 将证书文件上传至服务器任意位置,Nginx配置ssl证书
  7. 计算机硬件的漏洞,震惊了硬件圈子的CPU漏洞,到底是个什么鬼?
  8. 【机械】基于simulink模拟给定系统的超前补偿器,比较补偿和未补偿系统对阶跃和斜坡输入的响应
  9. 你对【瑞文代码推土机】的第一次
  10. 安徽大学计算机学院2019年研究生,2019安徽大学计算机科学与技术学院硕士研究生拟录取名单 -...