derby(cloudscape)数据库初探
1. 该数据库可在IBM和Apache两处下载,cloudscape是derby数据库的商业版本,由IBM赠送与Apache后的称呼。 Apache一方目前版本是Derby 10.1.0.0 alpha (Apr 28, 2005 / SVN 165185)。由于alpha版,而且Derby 10.0.2.2 (Apr 28, 2005 / SVN 165169)版本的数据
1. 该数据库可在IBM和Apache两处下载,cloudscape是derby数据库的商业版本,由IBM赠送与Apache后的称呼。
Apache一方目前版本是Derby 10.1.0.0 alpha (Apr 28, 2005 / SVN 165185)。由于alpha版,而且Derby 10.0.2.2 (Apr 28, 2005 / SVN 165169)版本的数据库提供的附加工具及少,所以我是去IBM网站下载的数据库。
IBM网站目前版本是V10.0.2.0 Build: 30301,提供3种类型的下载,有installer的linux,win32和没有installer一个单一的zip包文件。win32中包括jdk1.4,考虑到我的机器已经*安装了n个jdk,故此我下载了单一zip包的cloudscape。IBM下载地址为:http://www-128.ibm.com/developerworks/cn/db2/library/techarticles/dm-0408cline/index.html,需要以自己的mail作为id注册一个用户才能下载。
2. 下载后运行java –jar 10.0-IBM-Cloudscape.jar,出现安装界面,在这里需要指定安装目录,需要注意的是安装目录尽量不要带有空格。
3. 安装完后需要进行一些环境变量的设置,请根据自己的实际情况增加以下环境变量:
数据库安装目录环境变量:
CLOUDSCAPE_INSTALL= D:\IBM\Cloudscape_10.0
classpath中增加:
.;%CLOUDSCAPE_INSTALL%\lib\derby.jar;%CLOUDSCAPE_INSTALL%\lib\derbynet.jar;%CLOUDSCAPE_INSTALL%\lib\derbytools.jar;%CLOUDSCAPE_INSTALL%\lib\db2jcc.jar;%CLOUDSCAPE_INSTALL%\lib\db2jcc_license_c.jar
path中增加:
%CLOUDSCAPE_INSTALL%\frameworks\NetworkServer\bin
4. 现在就可以对数据库进行操作。该数据库提供两种模式的数据库引擎:1. 服务器架构中充当客户机/服务器的引擎。2. 作为可嵌入类库的数据库引擎。在c/s引擎应该比较了解。可嵌入类库的数据库引擎就是和java程序运行在同一JVM中,不需要启动数据库,不需要对数据库进行管理(对这个我也知道个大概,呵呵)。
1.C/S模式下的数据库访问:
打开dos界面,敲入startNetworkServer启动数据库,再打开一个dos界面敲ij以进行数据库管理。
在D:\IBM\Cloudscape_10.0\demo\databases下有一toursDB的demo数据库,我们要连至该数据库我们可以在ij下敲入:connect 'jdbc:derby:net://localhost:1527/"D:\IBM\Cloudscape_10.0\demo\databases\toursDB"'
例如以下我是对数据库的一些简单操作:
--连接数据库:
ij> connect 'jdbc:derby:net://localhost:1527/"D:\IBM\Cloudscape_10.0\demo\databases\toursDB"';
--创建一个名为abc的表:
ij> create table abc (a int, b int);
0 rows inserted/updated/deleted
--往abc表中插入数据,没into还报错,用sybase用习惯了。
ij> insert abc values(1,2);
ERROR 42X01: DB2 SQL error: SQLCODE: -1, SQLSTATE: 42X01, SQLERRMC: Encountered "abc" at line 1, column 8?42X0(?代表一个怪字符,spaces上发布的时候提示“此空间暂时不可用”,没办法只好用?代替啦,发现问题浪费了我十几分钟时间,TNND)
--这次数据进去了
ij> insert into abc values(1,2);
1 row inserted/updated/deleted
--察看刚才插入的数据
ij> select * from abc;
A |B
-----------------------
1 |2
1 row selected
--断开数据库连接,没有任何信息输出
ij> disconnect;
--退出ij
ij> exit;
注意命令结束符是分号“;”
如果要停止数据库在dos中敲入stopnetworkserver即可。
2.可嵌入类库模式下对DB的访问(该模式下不需要启动数据库,且ij中只能有一个连接操作数据库)
我的toursDB数据库目录为C:\IBM\Cloudscape_10.0\demo\databases下,如果我们DOS界面所在的目录已经在在该目录,则进入ij后直接敲入“connect 'jdbc:derby:toursDB';”就可以连接至数据库,否则得指定数据库所在路径“connect 'jdbc:derby:C:\IBM\Cloudscape_10.0\demo\databases\toursDB';”。下面是我对数据库的一些访问:
ij> connect 'jdbc:derby:toursDB';
ij> select * from cities;
CITY_ID |CITY_NAME |COUNTRY |AIRPORT |LANGUAGE
|COU&
----------------------------------------------------------------------------------------------------
------------
1 |Amsterdam |Netherlands |AMS |Dutch
|NL
……………………………等等
87 rows selected
ij> disconnect;
ij> exit;
C:\IBM\Cloudscape_10.0\demo\databases>
其中cities是toursDB数据库自带的一个表,其它的表还有airlines, countries,flightavailability,flights,flights_history,maps。
关于数据库的一些操作命令可在ij下敲入help;进行察看,详细的帮助信息在D:\IBM\Cloudscape_10.0\doc\pdf中,IBM的developerWorks下的DB2有很多介绍cloudscape相关技术的文章,网址:http://www-128.ibm.com/developerworks/cn/index.html。
还有IBM的在线帮助手册有3本是中文的,网址:http://www.elink.ibmlink.ibm.com/public/applications/publications/cgibin/pbi.cgi?CTY=US&FNC=ICL,进去后选择cloudscape。
嵌入式引擎作为db不是很清楚其工作方式,后来考虑了下大概就是个强大的Access数据库,这种方式下我觉得将它作为Access数据库来进行理解比较直观些。
目前我就用了eclipse下访问derby的3个插件:
1) ibm和apache的两个插件一起使用,安装后在java项目点击右键后出现“Apache Derby”,里面有一个菜单“Add Apache Derby nature”,点击后将出现start、ij、sysinfo工具,这个插件就这些东西。
2) 用Quantum或dbedit插件访问derby.dbedit插件比较强大些,可以可视的进行表的alert操作,好像没有proc,view的显示界面。Quantum有proc,view的显示界面,但是没法可视进行添加表功能。两个都有可视sql edit界面。我没搞定如何用derby的jdbc进行对数据库的访问,只能用db2的jdbc访问,url为:jdbc:db2://localhost:1527/"C:\IBM\Cloudscape_10.0\demo\databases\toursDB"