Derby是一种嵌入式的数据库,在java1.6中集成了。因为项目需要,最近研究了一下, 简单纪录如下;
首先:derby的文档说明写的很全,很明确,赞一个,绝大多数问题都能在说明文档里找到答案。
derby是一个嵌入式的数据库,但也可以当作数据库服务器使用,也就是说它有两种运行方式:
1、
嵌入式。只能被一个application使用,这个application关闭前,其他应用是不能访问这个数据库的。即使在应用中,调用了conn.close方法,将连接关闭,其他应用也不能使用,其他的应用获取连接时都会报错“Another instance of Derby might have already booted”。需要注意的是,derby自带的命令行工具ij也是一个应用,它连接时,其他的应用也不能连接。
使用嵌入式这种方式时,数据库连接的url使用:jdbc:derby:C:/databaseName
使用的驱动为org.apache.derby.jdbc.EmbeddedDriver,在derby.jar中
2、
服务器模式。这个需要启动一个服务,接受请求,这就和普通的DB2数据库差不多了。
启动服务在10.3版本中使用bin/startNetworkServer.bat。老版本使用的bat可能不同
使用服务器方式时,连接使用的URL为jdbc:derby:/localhost:1527/dbname:user=starflow;password=starflow;
这时,数据库必须放在/bin目录下,如果连接的数据库的数据文件不再/bin目录下,可以使用路径来访问,例如:jdbc:derby:/localhost:1527/c:/data/dbname:user=starflow;password=starflow;
客户端连接需要的驱动为org.apache.derby.jdbc.ClientDriver,在derbynet.jar中。
另外客户端可以使用db2的jcc驱动来连接,但我测试了n久都没有成功,不知道为什么。
derby的配置文件derby.properties,是自己建立的。这个一开始不知道,找了n久也没有找到