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. Mysql常用数据类型详细说明及实例说明(学习笔记一)
  2. 误操作数据库的一个方法
  3. 机器学习笔记:(时间序列中的线性回归)如何选择预测变量
  4. python中字典的几种定义方式
  5. 引用内部函数绑定机制,R转义字符,C++引用,别名,模板元,宏,断言,C++多线程,C++智能指针
  6. 简单使用Git和Github来管理自己的代码和读书笔记
  7. 阿里云 超级码力在线编程大赛初赛 第3场 题目2. 房屋染色(DP)
  8. php用空格分隔的字符串对比,探讨各种PHP字符串函数的总结分析
  9. ionic checkbox 精简用法
  10. python bottle session-使用beaker让bottle支持session
  11. 摘抄:不注明来源,就是违反契约
  12. Hierarchical Softmax、CBOW词带模型抽象化及其公式推理以及python代码实现包括注释
  13. 【UVA-10891】Game of Sum【区间DP】
  14. C++ __builtin_系列函数
  15. js中find和findIndex的使用
  16. Android 能让你少走弯路的干货整理
  17. C#取得DataTable最大值、最小值
  18. 苹果手机android设备可以删除吗,手机系统自带软件怎么卸载?苹果/安卓软件卸载攻略...
  19. 富爸爸,穷爸爸读后的一些认知
  20. Android VLC音频视频播发器快速集成教程与模块

热门文章

  1. rmtp+nginx+ffmpeg快速搭建直播平台
  2. 介绍几本专业的书籍,一起学习 关于技术 数学方面的
  3. Android开发之QQ空间效果(QQ空间下拉图片放大,松手后回弹)
  4. 亲,你今天“神聊”了吗?
  5. android 关闭软件更新,手机不停地显示软件更新,是更新好还是不更新好?
  6. oldboy的视频和江民防火墙有冲突吗?
  7. vue下载文件流完整前后端代码
  8. 数学有什么用?丘成桐:AI和大数据的未来都得靠它!
  9. 判定树、判定表(例题)
  10. MATLAB入门学习-Okumura/Hata 模型