Apache Derby Database介绍
上一篇:解决Oracle Analytic Workspace Manager错误一例 下一篇:Oracle 2007财年第四季度同比增长27%

Apache Derby Database介绍

Apache Derby Database

Apache Derby是一个完全用java编写的数据库,所以可以跨平台,但需要在JVM中运行。Derby是一个Open source的产品,基于Apache License 2.0分发。目前官方最新版本是10.2.2.0,可以从Apache网站下载:http://db.apache.org/derby

Derby最初的原型产品叫做Cloudscape,1999被Informix收购,随后又随同informix一起被IBM收购。在很多IBM产品中也使用了Cloudscape作为内嵌数据库。2004年,IBM将Cloudscape赠送给了Apache,遂更名为Derby。

Apache Derby非常小巧,核心部分derby.jar只有2M,所以既可以做为单独的数据库服务器使用,也可以内嵌在应用程序中使用。Cognos 8 BI的Content Store默认就是使用的Derby数据库,可以在Cognos8的安装目录下看到一个叫derby10.1.2.1的目录,就是内嵌的10.1.2.1版本的derby。

Derby提供了一个交互式人机接口工具,叫做ij,在windows平台下,这是一个bat文件,执行后进入命令行接口,通过connect命令可以连接,创建或者启停数据库。注意ij的所有命令必须以分号(;)结束。

D:\Program Files\Cognos\c8\derby10.1.2.1\bin>ij
D:\Program Files\Cognos\c8\derby10.1.2.1\bin>rem Make sure we are running from the bin directory
D:\Program Files\Cognos\c8\derby10.1.2.1\bin>cd D:\Program Files\Cognos\c8\derby10.1.2.1\bin\
D:\Program Files\Cognos\c8\derby10.1.2.1\bin>set DERBY_BIN=D:\Program Files\Cognos\c8\derby10.1.2.1\bin
D:\Program Files\Cognos\c8\derby10.1.2.1\bin>set DERBY_DIR=D:\Program Files\Cognos\c8\derby10.1.2.1\bin\..
D:\Program Files\Cognos\c8\derby10.1.2.1\bin>if “D:\Program Files\Cognos\c8\derby10.1.2.1\bin\..\..\bin\jre\1.4.2″ == “”
set JAVA_HOME=D:\Program Files\Cognos\c8\derby10.1.2.1\bin\..\..\bin\jre\1.4.2
D:\Program Files\Cognos\c8\derby10.1.2.1\bin>set DERBY_CLASSPATH=D:\Program Files\Cognos\c8\derby10.1.2.1\bin\..\lib\der
byclient.jar;D:\Program Files\Cognos\c8\derby10.1.2.1\bin\..\lib\derbytools.jar;D:\Program Files\Cognos\c8\derby10.1.2.1
\bin\..\lib\derbyLocale_de_DE.jar;D:\Program Files\Cognos\c8\derby10.1.2.1\bin\..\lib\derbyLocale_es.jar;D:\Program File
s\Cognos\c8\derby10.1.2.1\bin\..\lib\derbyLocale_fr.jar;D:\Program Files\Cognos\c8\derby10.1.2.1\bin\..\lib\derbyLocale_
it.jar;D:\Program Files\Cognos\c8\derby10.1.2.1\bin\..\lib\derbyLocale_ja_JP.jar;D:\Program Files\Cognos\c8\derby10.1.2.
1\bin\..\lib\derbyLocale_ko_KR.jar;D:\Program Files\Cognos\c8\derby10.1.2.1\bin\..\lib\derbyLocale_pt_BR.jar;D:\Program
Files\Cognos\c8\derby10.1.2.1\bin\..\lib\derbyLocale_zh_CN.jar;D:\Program Files\Cognos\c8\derby10.1.2.1\bin\..\lib\derby
Locale_zh_TW.jar

D:\Program Files\Cognos\c8\derby10.1.2.1\bin>set IJ_HOST=localhost
D:\Program Files\Cognos\c8\derby10.1.2.1\bin>set IJ_PORT=1527
D:\Program Files\Cognos\c8\derby10.1.2.1\bin>set IJ_USER=APP
D:\Program Files\Cognos\c8\derby10.1.2.1\bin>set IJ_PASSWORD=APP

D:\Program Files\Cognos\c8\derby10.1.2.1\bin>java -Djava.class.path=”D:\Program Files\Cognos\c8\derby10.1.2.1\bin\..\lib
\derbyclient.jar;D:\Program Files\Cognos\c8\derby10.1.2.1\bin\..\lib\derbytools.jar;D:\Program Files\Cognos\c8\derby10.1
.2.1\bin\..\lib\derbyLocale_de_DE.jar;D:\Program Files\Cognos\c8\derby10.1.2.1\bin\..\lib\derbyLocale_es.jar;D:\Program
Files\Cognos\c8\derby10.1.2.1\bin\..\lib\derbyLocale_fr.jar;D:\Program Files\Cognos\c8\derby10.1.2.1\bin\..\lib\derbyLoc
ale_it.jar;D:\Program Files\Cognos\c8\derby10.1.2.1\bin\..\lib\derbyLocale_ja_JP.jar;D:\Program Files\Cognos\c8\derby10.
1.2.1\bin\..\lib\derbyLocale_ko_KR.jar;D:\Program Files\Cognos\c8\derby10.1.2.1\bin\..\lib\derbyLocale_pt_BR.jar;D:\Prog
ram Files\Cognos\c8\derby10.1.2.1\bin\..\lib\derbyLocale_zh_CN.jar;D:\Program Files\Cognos\c8\derby10.1.2.1\bin\..\lib\d
erbyLocale_zh_TW.jar” -Dij.driver=org.apache.derby.jdbc.ClientDriver -Dij.protocol=jdbc:derby://localhost:1527/ -Dij.use
r=APP -Dij.password=APP org.apache.derby.tools.ij

ij> connect ‘jdbc:derby://localhost:1527/cm;user=cognos;password=cognos;’;

ij使用jdbc接口连接derby数据库,//后面是服务器名和端口号,/后面的是数据库名字,然后就是连接参数,比如上面的例子使用了user和password参数,可以使用其他参数比如create=true表示新建一个数据库,shutdown表示停止数据库等。

在ij中可以使用标准的SQL对数据库进行操作。Derby的系统表都以sys开头命名,并且都属于一个叫做sys的schema,比如systables中包含了系统中所有的table的信息:

ij> select * from sys.systables where tablename like 'SYS%';
TABLEID|TABLENAME |TABLETYPE|SCHEMAID|LOCKG RANULARITY
--------------------------------------------------------------------------------------------
--
80000010-00d0-fd77-3ed8-000a0a0b1900|SYSCONGLOMERATES|S|8000000d-00d0-fd77-3ed8-000a0a0b1900|R

80000018-00d0-fd77-3ed8-000a0a0b1900|SYSTABLES|S|8000000d-00d0-fd77-3ed8-000a0a0b1900|R
8000001e-00d0-fd77-3ed8-000a0a0b1900|SYSCOLUMNS|S|8000000d-00d0-fd77-3ed8-000a0a0b1900|R
80000022-00d0-fd77-3ed8-000a0a0b1900|SYSSCHEMAS|S|8000000d-00d0-fd77-3ed8-000a0a0b1900|R
8000002f-00d0-fd77-3ed8-000a0a0b1900|SYSCONSTRAINTS|S|8000000d-00d0-fd77-3ed8-000a0a0b1900|R
80000039-00d0-fd77-3ed8-000a0a0b1900|SYSKEYS|S|8000000d-00d0-fd77-3ed8-000a0a0b1900|R
8000003e-00d0-fd77-3ed8-000a0a0b1900|SYSDEPENDS|S|8000000d-00d0-fd77-3ed8-000a0a0b1900|R
c013800d-00d7-ddbd-08ce-000a0a411400|SYSALIASES|S|8000000d-00d0-fd77-3ed8-000a0a0b1900|R
8000004d-00d0-fd77-3ed8-000a0a0b1900|SYSVIEWS|S|8000000d-00d0-fd77-3ed8-000a0a0b1900|R
80000056-00d0-fd77-3ed8-000a0a0b1900|SYSCHECKS|S|8000000d-00d0-fd77-3ed8-000a0a0b1900|R
8000005b-00d0-fd77-3ed8-000a0a0b1900|SYSFOREIGNKEYS|S|8000000d-00d0-fd77-3ed8-000a0a0b1900|R
80000000-00d1-15f7-ab70-000a0a0b1500|SYSSTATEMENTS|S|8000000d-00d0-fd77-3ed8-000a0a0b1900|R
80000000-00d3-e222-873f-000a0a0b1900|SYSFILES|S|8000000d-00d0-fd77-3ed8-000a0a0b1900|R
c013800d-00d7-c025-4809-000a0a411200|SYSTRIGGERS|S|8000000d-00d0-fd77-3ed8-000a0a0b1900|R
f81e0010-00e3-6612-5a96-009e3a3b5e00|SYSSTATISTICS|S|8000000d-00d0-fd77-3ed8-000a0a0b1900|R
c013800d-00f8-5b70-bea3-00000019ed88|SYSDUMMY1|S|c013800d-00f8-5b53-28a9-00000019ed88|R
 
16 rows selected

其中tabletype:S-System table T-User table V-View
Lock Granularity:T-Table level locking R-Row level locking

更多关于derby数据库的使用,请参考官方文档:http://db.apache.org/derby/manuals/index.html

本文网址:http://www.ningoo.net/html/2007/an_introduction_to_apache_derby_database.html

订阅到Google | 收藏到Del.icio.us | 推荐到鲜果

相关文章 随机文章

本文Tags: , , ,

没有评论


(Required)
(Required, will not be published)