一、Derby数据库简介
1、Derby的发展史及特性概述
Derby是一个开源的,100%由Java开发的关系数据库,随着Java平台的普及Derby也收到了
越来越多的关注。Derby的前身是美国IBM公司的ColudScape。2004年4月,IBM公司将
CloudScape的数据库捐献给了Apache软件基金会,并将其更名为Derby,
接着SUN也为Derby捐献了一个团队。不同的是,在JavaSE6.0中,SUN将其命名为JavaDB。
因此,CloudScape、Derby和JavaDB只是该项目在不同时期的不同名称而已。
一提起关系数据库,总会让人觉得安装烦琐,空间占用很大。然而Derby却不是这样,
不用安装,可以直接使用。同时,附带的Derby也只占用了JavaSE6.0中不到10MB的空间。
千万不要认为Derby的功能会很弱,其全部支持SQL92标准以及许多SQL99的扩展,并且
提供了事务、崩溃恢复、并发连接等大型数据库的特性,管理几十GB的数据时依然轻松自如,
速度很快。
同时,由于Derby是由纯java开发的,因此也与生俱来具有了java的跨平台性,可以很好地
工作在各种操作系统上。另外,derby不但可以像传统数据库那样以C/S的方式工作,
也支持嵌入式的工作方式。
2、JavaSE 6.0 中derby的目录结构
默认是安装路径
"lib"目录中的几个jar文件
derby.jar--------包含了一些使用derby数据库时的所必须类,例如derby数据库的JDBC驱动类。
derbytools.jar-提供了一些实用derby数据库的工具,例如用来管理derby数据库的命令行工具。
derbyclient.jar-提供了一些开发derby数据客户端所必须的类,通过使用该jar包中的类,
可以开发出对网络模式下derby数据库服务器访问的客户端程序。
derbynet.jar----为网络模式下的derby数据库服务器提供支持的类。
二、管理工具ij
一般情况下每种数据库系统都会提供管理工具,如mysql的命令行客户端,oracle的sql*plus等。
derby也不例外,专门提供了一个功能非常强大的命令行工具----ij。
1、准备工作
使用该工具之前,首先需要做一些准备工作,主要是将ij工具需要的jar包路劲添加进classpath环境变量,
以及设置一个名称为DERBY_INSTALL的环境变量,步骤如下:
①修改/增加classpath环境变量(我这里是用户环境变量)
变量名:classpath
变量值:C:\Program Files\Sun\JavaDB\lib\derbytools.jar;C:\Program Files\Sun\JavaDB\lib\derby.jar
如果是修改classpath环境变量,不要忘记加分号。
提示:根据自己机器中java db的安装情况进行设置。
②增加DERBY_INSTALL环境变量
变量名:DERBY_INSTALL
变量值:C:\Program Files\Sun\JavaDB
提示:根据自己机器中java db的安装情况进行设置。
完成了上述步骤后,就完成了使用ij命令行工具的准备工作。为了验证准备工作成功,
ij能够正常工作,在命令行提示符窗口(cmd)中输入如下命令
java org.apache.derby.tools.sysinfo
如果准备工作的设置没有问题,cmd中会显示java系统的很多信息,如下图所示
2、简单使用
ij是derby自带的一个功能强大的数据库管理工具,可以进行很多数据库管理的操作,包括创建数据库,
启动/关闭数据库,执行SQL脚本等。完成准备工作后,就可以启动并使用ij工具了。
在cmd中输入如下命令启动ij工具,java org.apache.derby.tools.ij运行情况如下图所示:
下面分别介绍几个常用的ij命令,如下所列:
①创建以及连接数据库
使用ij创建以及连接指定数据库命令命令的语法格式如下:
connect 'jdbc:derby:<数据库路径>[;create=True/False]';
数据库路劲指的是指定数据库在磁盘上存放的位置,例如“E:\roway”。另外,路径也可以使用相对路径,
例如"roway",此路径表示当前执行目录下的roway子目录,若当前执行目录为“E:\”则实景路径为“E:\roway”。
方括号的内容是可选的,也就是说可以不写,若不写相当于"create=False"。
"create=False"表示仅连接已经存在的数据库,而"create=True"表示若数据库不存在则创建数据库。
提示:上面介绍的连接和创建数据库的命令,是用于derby的嵌入式工作模式的,
用于网络情况下的命令将在后面介绍。
例如,下面给出了一个在E盘下roway目录中创建数据库的命令
connect 'jdbc:derby:e:/roway;create=True';
完成了数据库的创建和连接后,就可以使用其他命令或运行SQL脚本对数据库进行操作了。
说明:第一次不存在数据库的时候使用"create=True"参数来创建并连接数据库,
以后就可以使用"create=False"参数仅连接数据库了。
②运行SQL语句
③运行SQL脚本
上面介绍了在ij中直接输入执行SQL语句,在操作简单的情况下很好用,如果操作复杂直接进行输入
就很不方便了。因此,ij中还允许用户使用run命令执行指定的SQL脚本,基本命令格式如下:
run '<SQL脚本文件的路径>';
在文本编辑器中输入如下SQL脚本,并保存为derby.sql脚本文件,例如“E:/derby.sql”.
- create table students(
- id numeric(20),
- name varchar(30),
- age numeric(6)
- );
- insert into students values(10001,'Aa',10);
- insert into students values(10002,'Bb',20);
- insert into students values(10003,'Cc',30);
- select * from students;
连接前面创建的数据库,并使用run命令执行"derby.sql"脚本文件,执行情况如下图所示:
④其他常用命令
除了前面介绍的几种比较重要的命令外,还有一些其他常用的命令,例如关闭数据库连接等,
disconnect;-----------------------断开数据库连接
Exit;---------------------------------退出ij 工具
三、Derby数据库的嵌入式应用
1、嵌入式derby的工作原理
在嵌入式工作模式中访问derby数据库的java应用程序与derby的数据库引擎工作在同一个JVM中,
不像别的数据库(如oracle)的数据库连接时连接到JVM之外的数据库引擎中。这样做的优点是,
省去了数据库软件的安装、数据源的配置等步骤,随着java应用程序的启动数据库也启动工作,
特别适合进行单机小软件或测试程序的开发。
但需要注意的是,嵌入式工作模式中应用程序访问数据库的连接是专有的,这就意味着其他
应用程序不可能在同一时刻访问该数据库。
2、嵌入式derby应用的开发步骤
进行嵌入式derby应用的开发,与通常的JDBC数据库开发并没有很大的区别,基本步骤还是
加载数据库驱动、创建数据库连接、通过连接操作数据库,只是在细节稍有不同。
①加载数据库驱动
需要连接的是derby数据库,需要加载derby数据库的jdbc驱动类,位于"lib"目录下的derby.jar文件中。
在运行程序时需要将derby.jar文件的路径添加到classpath路径中。
- //加载嵌入式derby的JDBC驱动类
- Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
说明:网络模式derby的jdbc驱动类不是这个,在后面会介绍。
②数据库连接字符串
成功地加载了数据库驱动类之后可以通过连接字符串来获取数据库连接了,
下面给出了连接字符串的基本格式:
jdbc:derby:<数据库路径>[;create=True/False]
另外,要注意的是由于介绍的derby工作在嵌入式模式,因此在应用程序退出之前应该关闭数据库。
关闭嵌入式的derby数据库也是使用连接字符串,下面给出了语法格式。
jdbc:derby:;shutdown=True
- //连接指定的derby数据库
- Connection conn = DriverManager.getConnection("jdbc:derby:e:/roway;create=False","","");
- //关闭已经连接的数据库
- DriverManager.getConnection("jdbc:derby:;shutdown=True");
提示:在关闭数据库成功后,getConnection()方法将抛出异常来进行通知。
③操作数据库
对derby数据库进行操作所采用的代码和访问其他数据库的完全相同,
也是使用通过数据库连接获取的Statement或PreparedStatement来执行指定的SQL语句。
说明:从上述3个步骤的介绍中额可以看出,以嵌入式方式访问derby数据库与访问其他数据库基本相同,
想把使用其他数据库的应用移植到derby上市非常容易的。
3、使用嵌入式derby的简单案例
提示:使用嵌入式derby数据库进行开发和使用其他数据库从编写代码的角度没有太大的不同,
但省去了安装与配置数据库的麻烦,这在特定的情况下将非常有用。
四、Derby数据库的网络模式应用
derby数据库不但可以通过嵌入式模式工作,与其他的数据库相同,也可以工作在网络模式下
同时为多个应用程序服务,处理来自不同JVM的数据库操作请求。
1、网络模式derby的工作原理
如果使用过其他的一些大型数据库,例如oracle、db2等,那么应该对数据库的网络
工作模式(c/s模式)的原理相当熟悉。
在这种模式下derby与其他数据库一样作为一个独立的服务器工作在网络上,等待来自其他
java应用程序的连接请求。这种模式中derby可以同时为不同的java应用程序服务,处理来自不同JVM
的数据库操作请求,也就是说同一时刻可以有多个应用程序访问同一个derby数据库。
说明:当不适合采用嵌入式进行操作时,例如应用程序与数据库不在同一台机器上,
或者数据库需要多用户并发访问时,就可以采用网络模式的的derby。
2、操作网络模式的derby
接下来介绍如何对网络模式下的derby进行操作,主要包括以网络模式启动derby
以及使用ij工具连接网络模式的derby。
①以网络模式启动derby
使用网络模式操作derby数据库前,首先要以网络模式启动derby数据库服务器,
下面给出了启动命令的基本格式:
java org.apache.derby.drda.NetworkServerControl start [-h <host> [-p <port>]]
NetworkServerControl是系统提供的一个用于启动derby服务器的类,位于derbynet.jar文件中。
因此需要将derbynet.jar文件路径添加到系统的classpath环境变量中。
方括号中为可选参数,"-h <host>"用来指定主机,"-p <port>"用来指定端口号,
默认的主机为localhost,默认的端口号为1527。
例如,下面给出了一个启动derby数据库服务器工作在本机1527端口的命令。
java org.apache.derby.drda.NetworkServerControl start -h localhost -p 1572
当成功启动derby数据库的网络服务后,可以从网路中的其他机器或本机来对该机器中的derby数据库
进行操作了。需要特别注意的是,在执行网路操作的过程中,cmd窗口不能关闭,一旦关闭则将断开网路服务。
②使用ij工具连接网络模式的derby
当derby数据库的网路服务启动后,可以使用ij工具进行连接和操作,
下面给出了ij中连接网络模式derby的名称格式。
connect 'jdbc:derby://<服务器主机地址>:<服务器端口号>/<数据库路径>[;create=True|False]';
提示:使用上述命令连接derby数据库服务器之前首先需要将derbyclient.jar文件路径添加到系统的
classpath环境变量中,
例如,下面的命令连接上了上面启动的derby数据库服务。
connect 'jdbc:derby://localhost:1572/E:/roway';
如果上述命令在ij中成功执行,则与指定数据库的连接成功建立,接着就可以使用各种命令对所连接的
数据库进行操作了。对网络derby数据库进行操作的命令与嵌入式derby完全相同。
3、开发启动derby网络服务的程序
实际应用中,不但可以通过前面介绍的命令来启动的derby数据库的网路服务,也可以通过自己开发的
java程序来启动derby数据库的网络服务。
从前面的介绍中可以发现,通过命令启动derby数据库的网络服务需要使用
org.apache.derby.drda.NetworkServerControl类。同样,自己开发程序启动derby数据库的网络服务也需要
使用这个类,有兴趣的可以自行查阅API。
4、使用网络模式derby的简单案例
客户端连接网络derby服务器需要的JDBC驱动类org.apache.derby.jdbc.ClientDriver
相关推荐
derby嵌入式数据库连接问题
这篇教程将一步步地指导您如何让 Derby 嵌入式数据库支持用户验证。 Derby 嵌入式数据库用户名和密码设置有两种方法: 方法一:配置 derby.properties 文件 通过配置 derby.properties 文件,可以实现对 Derby ...
而Apache Derby,作为一个轻量级、开源的关系型数据库,常被用于嵌入式环境,如桌面应用或测试环境。这篇文档将深入探讨如何在Spring Boot项目中集成和使用Apache Derby数据库。 首先,我们需要理解Spring Boot对...
嵌入式数据库Apache+Derby开发指南
- **Derby嵌入式基础:** 解释了如何将Derby作为应用程序的一部分直接嵌入。 - **Derby JDBC驱动:** 介绍了Derby提供的JDBC驱动程序及其特点。 - **Derby JDBC数据库连接URL:** 描述了如何构建正确的URL来连接...
- **Derby嵌入式基础知识**:介绍Derby作为嵌入式数据库的特性与优势。 - **Derby JDBC驱动**:阐述如何利用JDBC驱动来连接Derby数据库。 - **Derby JDBC数据库连接URL**:说明连接Derby数据库时URL的具体格式及其各...
### 基于嵌入式开源数据库Derby实现信息服务平台 #### 一、引言 在信息技术快速发展的背景下,信息服务平台对于现代社会来说至关重要。信息服务平台不仅能够高效地收集、处理和发布信息,还能促进信息资源的有效...
shiTunes:桌面音乐播放器 用 Java 为加州州立大学长滩分校的 CECS 343 软件工程开发的桌面音乐库管理器和播放器。 ##依赖 德比.jar derbytools.jar BasicPlayer 3.0 依赖项: commons-logging-api.jar ...
这部分内容为开发者提供了一个应用开发概述,介绍了Derby嵌入式模式的基础知识,包括如何创建数据库连接,如何使用Derby JDBC驱动,以及如何设置数据库连接URL。手册还讨论了如何使用内存数据库,并解释了数据库连接...
- **Derby 嵌入式基础**:Derby 可以作为 Java 应用程序的一部分运行,这种模式称为“嵌入式模式”。 - **Derby JDBC 驱动**:为了通过 Java 应用程序访问 Derby 数据库,需要使用 Derby 的 JDBC 驱动。该驱动可以...
嵌入式数据库Apache Derby是用 Java 语言编写的,所以可以在任何存在合适的 Java 虚拟机(JVM)的地方运行,Derby软件绑定在Java档案(JAR)文件中,只有2MB大小.
- **嵌入式基础**:讲解如何将 Derby 作为嵌入式数据库直接集成到应用程序中。 - **JDBC 驱动**:提供 Derby JDBC 驱动的详细信息,包括如何配置和使用。 #### 八、Derby JDBC 数据库连接 URL - **URL 结构**:...
《嵌入式Berkeley DB Java版与Derby技术研究》一文主要探讨了两种典型的嵌入式数据库技术——Berkeley DB Java Edition和Apache Derby。嵌入式数据库在资源有限的环境中,如嵌入式系统,因其体积小、功能齐全、可...
Derby是一种嵌入式数据库,可以轻松地嵌入到Java应用程序中。在本教程中,我们将学习如何安装Derby、创建数据库、在Java程序中使用Derby。 安装Derby 首先,我们需要下载并安装Derby。可以从Apache官方网站下载...
Derby数据库是一种嵌入式关系数据库管理系统,可以嵌入到Java应用程序中,提供了一个轻量级、可靠的数据库解决方案。 连接Derby数据库方法 1. 使用Database模式 在Eclipse中,可以使用Database模式来连接Derby...
收集的学习资料,包括:Derby数据库(V10.9)用户手册(PDF版),用 Apache Derby 进行 Java 数据库开发,用 Apache Derby 进行数据库开发,03开源项目(三)嵌入式数据库Apache Derby(1)(开发指南).pdf ,Apache Derby ...
版本 derby-10.17.1.0
Derby有两种运行模式:嵌入式模式和网络服务器模式。在嵌入式模式下,数据库引擎与应用程序在同一JVM中运行,数据库的启动和关闭与应用同步,只需引入derby.jar。而在网络服务器模式下,Derby作为一个独立的服务,...