天天看点

Derby学习笔记(一)Derby简单配置和基本使用

一、Derby介绍:Derby数据库是一个纯用Java实现的内存数据库,属于Apache的一个开源项目。由于是用Java实现的,所以可以在任何平台上运行;另外一个特点是体积小,免安装,只需要几个小jar包就可以运行了。

Derby数据库有两种运行模式:

       1) 内嵌模式。Derby数据库与应用程序共享同一个JVM,通常由应用程序负责启动和停止,对除启动它的应用程序外的其它应用程序不可见,即其它应用程序不可访问它;

       2) 网络模式。Derby数据库独占一个JVM,做为服务器上的一个独立进程运行。在这种模式下,允许有多个应用程序来访问同一个Derby数据库。

在Apache上,Derby有4种发布包,这里以bin发布包为例。bin发布包中含有包含了执行derby数据库工具、设置derby数据库环境的脚本文件、Demo、jar文件等。

       二、Derby安装:需要在Apache Derby官网上下载Derby得压缩包,然后解压,得到以下几个目录文件夹:

               1) bin目录,包含了一些工具脚本和设备环境的脚本;

               2) demo目录,包含了一些实例程序;

               3) docs目录,包含了Derby的文档;

               4) javadoc目录,包含了Derby的API文档;

               5) lib目录,包含了Derby数据库的jar文件;

               6) test目录,Derby的一些测试jar包;

           在解压好你的Derby之后,就需要开始配置了(也就是安装,由于Derby下载解压之后,没有可执行的比如.exe或者.mis可执行文件,所以Derby只需要手动配置系统的环境变量即可),比如,我将下载的Derby解压到E:java/Derby目录下,就可以进行简单的配置了(可以在cmd命令行里面配置,也可以通过界面配置环境变量)。

                   1、通过界面配置环境变量:

建立DERBY_HOME,值:E:java/Derby

在Path加入:%DERBY_HOME%\bin

在CLASSPATH加入:%DERBY_HOME%\lib\derby.jar;%DERBY_HOME%\lib\derbyclient.jar;%DERBY_HOME%\lib\derbytools.jar;%DERBY_HOME%\lib\derbynet.jar

        2、通过命令行设置:

               set DERBY_HOME=E:java/Derby

                将DERBY_HOME\bin目录添加到PATH环境变量中:

                set path=%DERBY_HOME%\bin;%PATH%

           这样可以简化你稍后在命令行中的输入,否则你每次都必须使用脚本的全路径或者你必须到DERBY_HOME\bin目录中才能执行脚本。

最后需要Derby的jar包添加到classpath环境变量中,在DERBY_HOME%\bin目录中提供了几个脚本用于设置classpath,以简化你手工在classpath中添加jar包的麻烦:1) setEmbeddedCP。当使用内嵌模式来运行Derby时,可以使用该脚本来设置。该脚本将derby.jar和derbytools.jar添加到环境变量中;2) setNetworkServerCP。当使用网络模式来运行Derby时,用该脚本来设置Derby服务端的classpath变量。该脚本将derbynet.jar添加到环境变量中;3) setNetworkClientCP。当使用网络模式来运行Derby时,用该脚本来设置Derby客户端的classpath变量。该脚本将derbyclient.jar和derbytools.jar添加到环境变量中。

                3、查看是不是设置成功:

                       在命令行中,输入sysinfo查看derby是不是正确配置,如果配置成功,则会出现如下的部分信息:

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

               E:\JavaDataBase\db-derby-10.10.1.1-bin\lib\derby.jar] 10.10.1.1 - (1458268)

               E:\JavaDataBase\db-derby-10.10.1.1-bin\lib\derbytools.jar] 10.10.1.1 - (1458268

               E:\JavaDataBase\db-derby-10.10.1.1-bin\lib\derbynet.jar] 10.10.1.1 - (1458268)

               E:\JavaDataBase\db-derby-10.10.1.1-bin\lib\derbyclient.jar] 10.10.1.1 - (145826

         到此,derby数据库就基本安装成功。

三、derby的使用:

       a:这里我将自己的数据库建立在E:\JavaDataBase\Data下。

       1、打开数据连接:

               我们跳转到E:\JavaDataBase\Data这个目录下,输入ij,将会进入connect 'jdbc:derby:Stu;create=true';(执行这个命令,将会检查你是不是又Stu这个数据库,如果没有,就会自动创建)

               执行connect 'jdbc:derby:Stu';将会在有这个数据库的情况下,会与Stu这个数据库建立连接。不会自动创建。

       2、建表:在建立了数据库之后,我们开始建立Stutable这个学生表:create table Stutable(id int primary key,name varchar(20));建立一个表;(也可以将这些增加删除修改的命令些在一个.sql文件里面,然后通过run 'sql文件全路径'命令运行)

       3、插入数据:insert into Stutable values(1,'张三');

       4、查看数据:select * from Stutable;

       5、修改数据:update Stutable set name='李四' where id=1;

       6、删除数据:delete from stutable where id=1;

       7、断开连接:disconnect;

       8、退出ij:exit;

       b:启动derby网络数据库。

       与上述内嵌模式的连接启动方式差不多,首先,运行Derby的bin文件夹下的startNetworkServer来启动网络数据库。

       1、连接网络数据库:与内嵌数据库连接几乎一样,connect 'jdbc:derby://loalhost:1527/数据库名;create=true';

       2、其余的操作就和内嵌的数据库操作一样。

  四、在java中怎么使用连接

   首先要导入Derby的jar包:derby.jar

 1、 在Java应用程序中访问Derby数据库

使用Java代码访问Derby数据库与访问其它数据库的区别如下:

1) JDBC驱动的不同;

2) 数据库连接URL的不同;

3) 在访问内嵌模式数据库时,需要显示关闭数据库。

下面分别实例访问内嵌模式和网络模式Derby数据库的代码

1) 访问内嵌模式Derby数据库

String driver = “org.apache.derby.jdbc.EmbeddedDriver”;

String url = “jdbc:derby:firstdb;create=true”;

Connection conn;

try {

Class.forName(driver);

conn = DriverManager.getConnection(url);

}catch(Exception e) {

……

}finally {

DriverManager.getConnection("jdbc:derby:;shutdown=true");

}

建立好连接后,其它的数据操作,如查询、更新数据都和其它数据库一样,这里不详述。有一点需要注意,通过Java应用程序访问内嵌模式Derby数据库时,应用程序有责任需要在程序结束时关闭Derby数据库,如上面代码finally中的

shutdown参数用于关闭Derby数据库,如果url中指定了数据库命,则只会关闭指定的数据库,而不会关闭整个Derby数据库。数据库关闭成功时,Derby会抛出一个错误码为XJ015和一个08006的异常表示关闭成功,应用程序可以不处理这两个异常。

2) 访问网络模式Derby数据库

网络模式和内嵌模式的不同出在于:

A. 数据库连接URL的不同;

B. 应用程序退出时无效关闭Derby数据库;

C. 数据库驱动的不同;

String driver = “org.apache.derby.jdbc.ClientDriver”;

String url = “jdbc:derby: //localhost:1527/firstdb;create=true”;

由于网络模式下,Derby数据库做为一个独立运行的数据库,可以被多个应用程序所访问,所以应用程序在运行结束时不应该关闭Derby数据库。

       2、 使用derbyrun.jar

通过derbyrun.jar也可以使用上面提到的sysinfo、ij、dblook三个脚本的功能,在使用derbyrun.jar前,除了DERBY_HOME环境变量外,你必须显示设置好classpath环境变量,可以通过上面提到的setEmbeddedCP、setNetworkServerCP、setNetworkClientCP几个脚本来设置,具体使用哪个脚本取决于你如何使用Derby数据库。

可以通过java –jar %DERBY_HOME%\lib\ derbyrun.jar来运行derbyrun中的工具:

1) 使用sysinfo。java –jar %DERBY_HOME%\lib\ derbyrun.jar sysinfo

2) 使用ij。java –jar %DERBY_HOME%\lib\ derbyrun.jar ij

3) 使用dblook。java –jar %DERBY_HOME%\lib\ derbyrun.jar dblook

继续阅读