mutongwu 发表于 2013-1-14 23:00:17

derby的使用

一。安装:
设置好环境变量就行,例如
DERBY_HOME=C:\derby
Path 包含:C:\derby\bin
classpath 包含:C:\derby\lib

这样的话,在命令窗口就可以使用ij等命令了。
二。使用
方式1.把derby.jar直接放到web工程中 WEB-INF/lib下。这种情况下,derby数据库的启动和关闭跟工程一致。
如果到了最后发表工程的时候,这种方式使用是最简单的。

方式2.开发中,往往在运行的时候,我们需要查看数据库的数据,
可是使用ij时必须停止主应用程序,看看下面的Derby和Oracle的对比图就明白为什么有这样的要求:(来源:http://programmerdigest.cn/2009/12/825.html)

http://dl.iteye.com/upload/attachment/450264/4a4e53ee-4e37-356b-bdd0-d3357779c624.jpg

所以,我们需要让derby以独立的形式运行。
在eclipse中,借助derby提供的插件来实现:
1.下载插件,解压后扔到eclipse 的plugins里面;
2.启动eclipse,右键工程,可以看到多了一个菜单项:Apache derby
3.在该菜单项,选择 add apache derby nature;
4.在该菜单项,选择 start derby network service;
    在这个时候,通常会报错:
    Tue Mar 29 17:32:15 CST 2011 : 已使用基本服务器安全策略安装了安全管理程序。    Tue Mar 29 17:32:15 CST 2011 Thread java.security.AccessControlException: access denied (java.io.FilePermission derby.log read)    Tue Mar 29 17:32:16 CST 2011 : Apache Derby 网络服务器 - 10.7.1.1 - (1040133) 已启动并准备接受端口 1527 上的连接    Tue Mar 29 17:32:16 CST 2011 : Apache Derby 网络服务器 - 10.7.1.1 - (1040133) 已启动并准备接受端口 1527 上的连接
    这是由于 java安全机制原因。
    解决方法:找到 工程运行使用的JRE.打开文件:
    C:\Java\jdk1.6.0_02\jre\lib\security\java.policy
    在grant { }里面最后添加一句:
    permission   java.security.AllPermission;
    搞定。(显然,这种方式是存在安全隐患的,最好是能详细指出对derby.log有读写权限)
5.成功启动derby数据库,就可启动工程了。
6.在 Apache derby 子菜单,就可以 使用ij工具,连接数据库,执行SQL语句等。    (Tips:打开ij工具,eclipse会自动添加一个Console窗口,多个Console可以在eclipse的 Console图标下拉中找到。 一开始还以为它把工程的那个console给覆盖了。>_<)
      
最后,2中方式的数据库连接配置有点区别:
# Database connection parameters.# 1) derby Embedded module#databaseDriver=org.apache.derby.jdbc.EmbeddedDriver#databaseURI=jdbc:derby:explorer;create=true# 2) derby server moduledatabaseDriver=org.apache.derby.jdbc.ClientDriverdatabaseURI=jdbc:derby://localhost:1527/explorer;create=truedatabaseUsername=rootdatabasePassword=root
页: [1]
查看完整版本: derby的使用