Derby快速上手
by lostfireDerby是IBM送给开源社区的又一个礼物,是一个pure java的数据库,现在已经被列入到java1.6中。
不知道对于大数据量的性能如何,但传说中启动derby只会给JVM添加2M的内存,对那些小数据库应用,比如像用access那种应该是挺有诱惑力的。
另外,麻雀虽小,五脏俱全,功能要比access多得多咯,包括事务处理,并发,触发器都有,管理又简单,因此自己用来做点工具正好合适。
废话少说,介绍一下我折腾了半天的经验吧。
我的Derby配置过程:
1,下载db-derby-10.1.3.1-bin.tar.gz,derby_core_plugin_10.1.3.zip和derby_ui_plugin_1.1.0.zip,把两个插件安装到eclipse上
2,打开ecllipse,新建一个project
3,右键这个project,选择Apache Derby,再选择add apache derby native,发现只是给我的project添加了几个derby的jar,还不是在我看着顺眼的lib目录里,索性干掉,换上db-derby- 10.1.3.1-bin.tar.gz解压出来以后lib目录下的jar文件,在Build Path里设置一下;
4,右键Project,在apache derby里选择start apache derby network server,控制台可以看到derby启动后打出的“服务器准备在端口 1527 上接受连接。”
5,右键Project,在apache derby里选择ij(Interactive SQL),启动SQL控制台;
6,输入connect 'jdbc:derby:testdb;create=true'; 注意要有单引号,可以在工程跟目录下创建testdb数据库,可以看到一个新建的目录testdb,那里的文件就是数据库咯;
7,用标准的SQL语句来建一个数据库试试:
create table test (a varchar(4) not null, b char(2) primary key);
居然可以用,太神奇了,呵呵
8,再插入一条语句试试呢,insert into test(a,b) values('a','11');,嗯,不错,可以用select 查出来的哦。
9,再插一下:insert into test(a,b) values('a','11');,哦哦,报错了,“
错误 23505:语句异常终止,因为它导致“TEST”上所定义的“SQL060710092132480”标识的唯一或主键约束或唯一索引中出现重复键值。” 呵呵。
10,好了,现在可以像你控制的其他数据库一样来控制Derby了。
如果上述方法不行,或者你习惯了在eclipse之外使用和管理数据库,那么可以很方便的把Derby“装”在系统里。下面我说一下步骤:
1,把db-derby-10.1.3.1-bin.tar.gz解压到c:\derby,使lib和framework两个目录在c:\derby下边即可
2,设置环境变量
- 设置一个c:\derby\framework\embeded\bin或c:\derby\framework\NetworkServe\bin到Path中,这样我们就可以直接执行上边介绍的connect这样的命令而不用每次钻到那个目录下去执行了
- 设置c:\derby\lib\derby.jar;c:\derby\lib\derbytoos.jar到CLASSPATH中,以便让这些java编成的命令能够正确执行;
3,打开cmd
4,敲入startNetworkServer,可以看到像在eclisp中提示的那样启动了server
5,再打开一个cmd,敲入sysinfo,可以看到derby的环境信息了,注意在java user dir这一项,也许是java用户目录上和上边看到的会有所不同哦,这样在connect 'jdbc:derby:testdb;create=true';的建的数据库目录就不一样咯。
6,敲入ij,好了,进入到上边的交互界面,可以建一个数据库看看了。
7,最后在另外一个cmd中敲入stopNetworkServer就可以关闭数据库了。
如果你两种方法都试过了,那么需要注意的,还是上边步骤5的问题,这个问题是你可能随时会启动一个数据库或新建一个数据库,但如果你刚刚使用derby,你可能还没有察觉。
derby实际上有两种启动方式,一种是嵌入式的,一种是网络服务器的启动。
1,我们在eclipse中右键start apache derby network server那个,就是网络服务器的启动方式,在这种方式下可以用另外一台计算机在ij中以:
connect 'jdbc:derby://192.168.0.28:1527/testdb' 的方式进行链接。
2,第二种启动方式是在ij里边就直接
connect 'jdbc:derby:testdb'
这实际是在连
当前配置环境下java user dir下那个目录的数据库。
实际上derby的访问更像是一种使用derby driver对本地文件系统的访问,不管启动不启动网络服务器,都可以用driver访问本地的数据库。这样,在ij里边像第二种方式那样建立连接是完全可以的。启动了网络服务器,只不过是能够让其他主机访问罢了。
posted on 2006-07-10 22:47
rd2pm 阅读(2171)
评论(3) 编辑 收藏 所属分类:
other