连derby数据库连接总是XJ040异常,各位看是什么原因

derby数据库链接_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
derby数据库链接
上传于||文档简介
&&d​e​r​b​y​数​据​库​链​接
大小:14.27KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
derby数据库详解
下载积分:30
内容提示:derby内存数据库。
文档格式:PDF|
浏览次数:48|
上传日期: 15:35:07|
文档星级:
该用户还上传了这些文档
derby数据库详解
官方公共微信Derby通过JDBC操作数据库(两种) - greatwqs :
Where amazing happens ... - ITeye技术网站
博客分类:
Derby版本 :
db-derby-10.8.1.2
1) bin目录,包含了一些工具脚本和设备环境的脚本;
2) demo目录,包含了一些实例程序;
3) docs目录,包含了Derby的文档;
4) javadoc目录,包含了Derby的API文档;
5) lib目录,包含了Derby数据库的jar文件;
6) test目录,Derby的一些测试jar包;
Derby操作通过JDBC操作数据库有两种:
一种是网络模式,通过网络的链接形式(通常我们的mysql/oracle数据库,都是IP+端口),
二种是内嵌模式,即是通过文件的形式.
数据库来源:里面的数据库都是在第一篇帖子中的通过ij命令行写入的数据,这里进行的查询.
获得Derby数据库:http://db.apache.org/derby/
1. 网络模式如下代码:
package com.greatwqs.
import java.sql.C
import java.sql.DriverM
import java.sql.ResultS
import java.sql.S
* @author greatwqs
public class DerbyTest {
public static void main(String[] args) {
DerbyTest testClient = new DerbyTest();
testClient.showTableContents();
public void showTableContents() {
String driver = "org.apache.derby.jdbc.ClientDriver";
Class.forName(driver).newInstance();
Connection conn =
conn = DriverManager.getConnection("jdbc:derby://localhost:1527/ij_cmd_test_db");
Statement s = conn.createStatement();
ResultSet rs = s.executeQuery("SELECT * FROM ijtest");
while (rs.next()) {
System.out.println("序号 : " + rs.getInt(1));
rs.close();
s.close();
conn.close();
} catch (Exception e) {
System.out.println("Exception: " + e);
e.printStackTrace();
注意第23行的代码:
conn = DriverManager.getConnection("jdbc:derby://localhost:1527/ij_cmd_test_db");
注意:使用ip+端口的链接derby数据时,必须启动网络链接.
执行/derby_home/bin/startNetworkServer
2. 内嵌模式的JDBC查询:
测试代码如下:
package com.greatwqs.eagle.
import java.sql.C
import java.sql.DriverM
import java.sql.ResultS
import java.sql.SQLE
import java.sql.S
import java.util.P
* @author greatwqs
public class DerbyTest_File {
private final static String DB_URL = "jdbc:derby:D:\\Program Files\\derby\\db-derby-10.8.1.2-bin\\bin\\ij_cmd_test_db";
private final static String DERBY_DRIVER = "org.apache.derby.jdbc.EmbeddedDriver";
public static void main(String[] args) {
Connection conn =
Class.forName(DERBY_DRIVER);
Properties properties = new Properties();
// properties.put("create", "false"); // 新建数据库
// properties.put("user", "APP");
// properties.put("password", "APP"); // 密码
// properties.put("retreiveMessagesFromServerOnGetMessage", "true");
conn = DriverManager.getConnection(DB_URL, properties);
Statement stat = conn.createStatement();
ResultSet result = stat.executeQuery("SELECT * FROM ijtest");
while (result.next()) {
System.out.println("序号 : " + result.getInt(1));
result.close();
stat.close();
conn.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 内嵌模式数据库操作用完之后需要关闭数据库,这里没有执行数据库名称则全部关闭.
DriverManager.getConnection("jdbc:derby:;shutdown=true");
} catch (SQLException e) {
e.getMessage();
注意里面的15行代码:
private final static String DB_URL = "jdbc:derby:D:\\Program Files\\derby\\db-derby-10.8.1.2-bin\\bin\\ij_cmd_test_db";
通过Java应用程序访问内嵌模式Derby数据库时,应用程序有责任需要在程序结束时关闭Derby数据库,如上面代码finally中的
DriverManager.getConnection("jdbc:derby:;shutdown=true");
shutdown参数用于关闭Derby数据库,如果url中指定了数据库命,则只会关闭指定的数据库,而不会关闭整个Derby数据库。数据库关闭成功时,Derby会抛出一个错误码为XJ015和一个08006的异常表示关闭成功,应用程序可以不处理这两个异常。
内嵌模式和网络模式的区别:
A. 数据库连接URL的不同;
内嵌模式是以准确地址为基准,网络模式ip+端口+数据库
B. 应用程序退出时无效关闭Derby数据库;
内嵌模式退出需要关闭数据库,网络模式Derby数据库做为一个独立运行的数据库,可以被多个应用程序所访问,所以应用程序在运行结束时不应该关闭Derby数据库。
C. 数据库驱动的不同;
内嵌模式使用org.apache.derby.jdbc.EmbeddedDriver,网络模式使用org.apache.derby.jdbc.ClientDriver
链接derby总结:
在测试的过程中需要加入驱动程序到
一般情况下驱动的jar包的路径为:\derby_home\lib
异常情况的处理:
在链接derby时不能同时链接ij和ip+端口的查询,同时链接ij和文件的jdbc查询ok.
数据库文件存放的位置:/derby_home/bin/ij_cmd_test_db
这里数据库的数据来源为上一篇中的derby的ij测试工具添加的数据.
运行上面的程序后,成功截图:
浏览: 301231 次
来自: 成都
log4j.logger.ACP_SDK_LOG=INFO,A ...
&如果此Region的MemStore已经有缓存已有 ...
很好 我的第一次就是看了这个才成功的
杨卫华:新浪微博技术架构分析http://tech.sina. ...
Android组件大全/20 ...IBM Bluemix
点击按钮,开始云上的开发!
developerWorks 社区
本文已经到达了掌握基本数据库概念的关键点,因为这些数据库概念与 Apache Derby 数据库相关。本文回顾了如何修改 SQL 查询对相关的行进行分组来提供汇总的统计数据库信息,然后介绍了视图的概念,通过创建表示 SQL 查询结果的虚拟表,视图可用于简化数据库应用程序开发。最后了解数据库索引,它可用于定位特定的表行。掌握这些高级数据库概念后,您就做好了开始用 Apache Derby 开发 Java™ 数据库应用程序的准备。
(), NCSA 研究专家、天文学助理教授, 伊利诺斯大学,Urbana-Champaign
Robert J. Brunner 是 National Center for Supercomputing Applications 的研究科学家,也是位于 Urbana-Champaign 的伊利诺斯大学的天文学助理教授。他出版过多部著作,发表过主题广泛的文章和教程。
准备好投入学习了么?本文介绍若干个高级数据库概念,包括对 SQL 查询结果进行分组、数据库视图和数据库索引,您将需要把这些概念与 Apache Derby 数据库结合使用。要继续学习并完成本文中的示例,需要有一个经过正确初始化的 Apache Derby 测试数据库。如果完成了
中的示例,则已经有一个测试数据库。如果未完成,或者如果需要一个干净的安装 —— 此安装确保可以顺利地完成本文中的示例 —— 可以下载并安装本文附带的 SQL 脚本,如
清单 1. 设置 Derby 工作环境rb% mkdir derbyWork
rb% cp derby8.zip derbyWork/
rb% cd derbyWork/
rb% unzip derby8.zip
derby8.zip
inflating: derby.build.sql
derby.build.sql derby8.zip
rb% java org.apache.derby.tools.ij & derby.build.sql & derby.build.out 2& derby.build.err
rb% java org.apache.derby.tools.ij
ij version 10.1
ij& connect 'jdbc:derby:test' ;
ij& 先创建了一个新的工作目录,名为 derbyWork,将在其中创建测试数据库。在解压缩 SQL 脚本文件并将其复制到 derbyWork 目录后,需要按照 “”(developerWorks,2006 年 5 月)中演示的方法使用 ij 工具来处理 derby.build.sql 脚本文件。
本示例最后将启动 ij 工具并发出 connect 命令建立与测试数据库的连接。如果得到错误,例如 ERROR XJ004: Database 'test' not found.,则 SQL 脚本文件一定已经失败。要诊断问题,请查看 derby.build.out 和 derby.build.err 文件,并参考本文的
部分中列出的
或 Derby 联机文档。如果一切按照预期运行,则应当会看到 ij& 提示符,然后就可以发出返回聚合而不是行的 SQL 查询。
对结果进行分组
在本系列教程的最近几篇文章里(包括链接在内的更多详细信息,请参阅
部分),构造了各种类型的 SQL 查询。这些查询的范围从简单的数据转储(其中列出单张表中的每一列)到返回来自表联结的内置函数的值和结果的查询。但是,在所有这些查询中,实际行或对一张或多张数据库表的实际行执行内置函数的结果,将由 SQL 查询返回。
在某些情况下,这可能不是想要或需要的结果。例如,将多个数据库表联结一起可能会生成大型查询结果;或者可能不需要表中的所有数据,而仅需要统计数据汇总 —— 可能是每月的销售情况,也可能是每季度的支出。或者可能仅需要 SQL 查询对相关行进行分组并返回组结果,而不是所有底层行。使用 SQL 可以实现此结果,方法是将 GROUP BY 子句以及表示底层行分组方法的一列或多列添加到 SQL 查询的末尾。
这种技术功能十分强大,尤其是在与聚合函数结合使用的时候,因为可以用它快速生成各组相关行的汇总统计信息。在本系列教程的
中首次介绍 SQL 查询时,讨论了 Apache Derby 处理 SQL 查询的各组件的顺序:依次处理 FROM、WHERE、GROUP BY、HAVING,最后处理 SELECT。因而,数据库将先按照 GROUP BY 子句中的指令把满足 WHERE 子句的行分组,然后再通过 SQL 查询选择任何列或函数结果。 提供了这些规则的示例;它将计算为 Bigdog 的 Surf Shop 供货的每个供应商提供的平均价格和商品数量。
清单 2. 使用 GROUP BY 和 HAVING 子句的分组结果ij& SELECT COUNT(p.itemNumber) AS Number, AVG(p.price) AS Average
FROM bigdog.products AS p, bigdog.vendors AS v
WHERE p.itemNumber = v.itemNumber
GROUP BY v.vendorN
-----------------------
3 rows selected
ij& SELECT v.vendorNumber,
COUNT(p.itemNumber) AS Number, AVG(p.price) AS Average
FROM bigdog.products AS p, bigdog.vendors AS v
WHERE p.itemNumber = v.itemNumber
GROUP BY v.vendorNumber
HAVING v.vendorNumber & 1 ;
VENDORNUMB&|NUMBER
-----------------------------------
2 rows selected
本示例中的第一个查询用于使用 itemNumber 列把 bigdog.products 表和 bigdog.vendors 表联结起来。但是,在从新联结的表中选择任何行之前,需要先使用 GROUP BY
v.vendorNumber 子句对相关行进行分组。GROUP BY 子句不是仅仅把通过查询得到的行分类,而是将其分组到一起;只有分组后的数据才能被返回或在聚合函数中使用。换言之,只能选择 GROUP BY 子句中列出的列、对联结的表中任意列进行操作的聚合函数的值、常量或特殊寄存器。
第二个查询通过添加 HAVING 子句扩展了第一个查询。可以使用一个 HAVING 子句,通过限制可用于对相关行进行分组的列值来限制 GROUP BY 子句的操作。在本例中,只有 vendorNumber 大于 1 的行被分组,结果只显示两组。正如使用 GROUP BY 子句的示例一样,HAVING 子句可以提取多列;但在 HAVING 子句中列出的任何列一定也要列在 GROUP BY
子句中,否则 Apache Derby 数据库引擎将发出一个错误。
好视图无价
当使用诸如 Apache Derby 之类的关系数据库时,一般处理的基本结构是由数据行构成的数据库表。通过使用 SQL 查询,可以插入、选择、更新或删除一个或多个表中的数据。有时,这些查询 —— 尤其是 SELECT 查询 —— 可以很复杂并可能被频繁使用。在这种情况下,可能需要让数据库把查询结果作为新表来处理,这样可以更轻松地使用查询结果。
实现此结果的最简单的方法是创建新表并将 INSERT INTO SQL 语句与您感兴趣的查询结合使用,从而显式地创建新表并用适当的数据填充该表,如本系列教程的
所示。虽然此技术十分简单,但它有几个缺点。首先,数据库中有了重复的数据,这就需要更多资源。其次,并且可能更重要的是,如果原始数据改变,则重复的数据将成为旧数据并需要更新。由于此概念的重要性,因此一定有一种更好的方法。
不足为奇,确实有一种更好的办法,它叫做视图。视图是通过执行查询创建的虚拟表。创建和删除视图都很简单,如
中的正式语法所示。
清单 3. 使用视图的正式语法CREATE VIEW schema.viewName
[ ( columnName1 [, columnName2] * ) ]
DROP VIEW schema.viewN
要创建视图,需要使用 CREATE VIEW SQL 语句。在创建新视图时,可以在视图中显式地为列命名(例如,columnName1、columnName2 等等),也可以从用于构造视图的 SQL 查询的 SELECT 子句中列出的列直接隐式复制列名。在有表的情况下,视图应当被指定给特殊的模式;否则应当被指定给默认的 APP 模式。要删除视图,需要使用 DROP VIEW 语句以及视图的全限定名称。 中演示了这两种视图操作。
清单 4. 在 Apache Derby 中创建和删除视图ij& CREATE VIEW bigdog.vendorList (Name)
AS SELECT DISTINCT vendorName FROM bigdog.
0 rows inserted/updated/deleted
ij& SELECT * FROM bigdog.vendorL
------------------------------
Mikal Arroyo Incorporated
Quiet Beach Industries
Luna Vista Limited
3 rows selected
ij& DROP VIEW vendorL
ERROR X0X05: Table 'VENDORLIST' does not exist.
ij& DROP VIEW bigdog.vendorL
0 rows inserted/updated/deleted
ij& SELECT * FROM bigdog.vendorL
ERROR 42X05: Table 'BIGDOG.VENDORLIST' does not exist.
ij& 中的第一条语句用于在 bigdog 模式中创建名为 vendorList 的新视图。此视图由一个显式命名为 Name 并用 bigdog.vendors 表的 vendorName 列中的不重复名称填充的列构成。接下来,发出 SELECT 语句来查询 vendorList 视图,该视图将显示如何按照与使用表相同的多种方法使用视图。
由于不再需要使用此视图,因此接下来尝试删除该视图。使用的第一条 SQL 语句不包括视图的全限定名称;在这种情况下,缺少模式名称,将导致出错。使用全限定视图名称 bigdog.vendorList 正确应用 DROP VIEW 语句后,删除操作就成功完成了。要证明视图不再存在,需要尝试重新执行最初的 SQL SELECT 语句,现在的结果是失败,因为视图已被删除。
回想视图的定义:它是虚拟表。因此视图几乎与实际 表相同。例如,视图可直接用于或作为联结的一部分用于 SQL 查询中。由于视图是虚拟的,因此视图不能用于直接修改其中包含的数据。但是,对保存原始数据的表所做的任何更改都会被自动传播到视图中的数据。 中显示了使用视图的最后这个优点。
清单 5. 在 Apache Derby 中使用视图ij& CREATE VIEW bigdog.inventory AS SELECT p.price, p.description AS "Item",
v.vendorName AS "Vendor"
FROM bigdog.products AS p, bigdog.vendors AS v
WHERE p.itemNumber = v.itemNumber AND p.price & 40.00 ;
0 rows inserted/updated/deleted
ij& SELECT * FROM bigdog.
--------------------------------------------------------------------------------
|Beach umbrella
|Luna Vista Limited
|Female bathing suit, one piece, aqua
|Mikal Arroyo Incorporated
2 rows selected
ij& UPDATE bigdog.products SET price = 44.95 WHERE itemNumber = 8 ;
1 row inserted/updated/deleted
ij& SELECT * FROM bigdog.
--------------------------------------------------------------------------------
|Beach umbrella
|Luna Vista Limited
|Female bathing suit, one piece, aqua
|Mikal Arroyo Incorporated
|Blue-stripe beach towel
|Luna Vista Limited
3 rows selected
ij& DROP VIEW bigdog.
0 rows inserted/updated/deleted
本例首先创建一个新视图 bigdog.inventory,它是通过联结两张表得到的。这个新视图包含销售价格高于 40 美元的所有产品的存货清单。请注意,此视图包含按照创建视图的查询中的 SELECT 子句列出的列名命名的列。然后,发出提取视图中的所有行的查询来验证这个新视图的内容。
下一条语句在 bigdog.products 表(用于创建 inventory 视图的基表之一)中增加了一个产品价格。重新执行 SELECT 查询,现在看到视图包含三个条目,这就演示了 Apache Derby 中的视图的动态本质。最后,从数据库中删除视图,因为不再需要使用该视图。如果需要将视图重命名,很不幸 —— 在目前的 Apache Derby 中不能执行此操作。而是必须删除原始视图,然后用正确的名称创建一个新视图。
如本例所示,视图是一种功能强大的工具,它可以简化开发和维护数据库应用程序的任务。下一部分将介绍索引,索引可用于加快对表和视图的查询执行速度。
用索引加速 中使用的简单查询 SELECT * FROM bigdog. 将从 inventory 视图中提取所有行。为了提取必要的数据,此类查询将执行称为全表扫描 的操作,这意味着表(本例中为视图)中的每一行都将被扫描并处理。扫描表涉及到将数据从磁盘中提取出来,然后放到用于分析原始数据的计算机内存中。对于
中的这种小型表,这种处理不会造成明显的性能下降。但是,对于大型表来说,扫描可能会是需要付出高昂代价的操作,这种操作只要可能就应避免。您可能认为包含一条 WHERE 子句会有帮助,因为使用它提取到的数据集会更小;但是,这仍需要搜索表中的每一行来查找相应的匹配行。
在书中查询特定的段落或信息时,问题也是类似的。可以从开头开始扫描整本书,标记所有相关页面,直至到达末尾。或者,可以在书的索引中查找,从而快速定位相关页面。在索引中查找通常会更快。幸运的是,类似的构造也可用于 Apache Derby。 中提供了创建、删除和重命名索引的正式语法。
清单 6. Apache Derby SQL 索引操作的正式语法CREATE [UNIQUE] INDEX schema.indexName
ON schema.tableName ( columnName [ ASC | DESC ]
[ , columnName [ ASC | DESC ]] * ) ;
DROP INDEX schema.indexN
RENAME INDEX indexName TO newIndexN
这三条语句全部都遵循简单的正式语法。首先,CREATE INDEX 语句将在特定的表上创建新索引。索引名称不能超过 128 个字符,并且在 Apache Derby 中,此名称在给定模式中必须惟一。当构建新索引时,可以指定一列或多列(最多 16 列),但任何给定列只能在每个索引中使用一次。默认情况下,索引是按照各列的升序顺序构建的,但可以使用 DESC 关键字指定应按降序排列的特定列。UNIQUE 关键字用于指定表不能有拥有相同索引值的多个行。换言之,每个索引值都映射到一个表行,这样可以与主键一起使用来增强表中数据的完整性。
要删除索引,需要使用 DROP INDEX 语句以及全限定索引名称。另一方面,仅当索引位于当前模式中时,才可以使用 RENAME INDEX 语句重命名索引。因而,要么必须时刻在默认模式中工作,要么(更有可能)使用 SET SCHEMA 语句,如
清单 7. 在 Apache Derby 中使用索引ij& SET SCHEMA
0 rows inserted/updated/deleted
ij& CREATE INDEX productsIndex ON products(itemNumber) ;
0 rows inserted/updated/deleted
ij& RENAME INDEX productsIndex TO
0 rows inserted/updated/deleted
ij& DROP INDEX
0 rows inserted/updated/deleted
本例中的第一条语句 SET SCHEMA 将当前数据库连接的默认模式设置为 bigdog 模式。因此,不再必须在全限定名称中包括 bigdog 模式名称。下一步是通过按默认的升序顺序排列 itemNumber 列,在 products 表上创建名为 productsIndex 的新索引。接下来,需要将 productsIndex 索引重命名为 pi。最后,需要使用 DROP INDEX 语句删除索引。注意,这些 SQL 语句较容易编写,因为不需要经常指定模式名称。
您可能感到很奇怪,本文并未演示如何使用索引。原因很简单:是否在处理 SQL 查询时使用索引是由数据库引擎决定的。如果需要用索引来提高给定查询的性能,数据库引擎就会自动使用索引。对于示例模式中的小型表,索引的任何性能优势都很小。对于这些小型表,使用索引几乎可以肯定将会更慢,因为访问索引比不访问索引会增加系统开销。
要了解其原因,请再次与书进行类比,但这次假定书只有几页文本。在这种情况下,查看页面要比定位索引,查找索引中的相关值,然后再查找感兴趣的页面更快。对于数据库索引,这同样正确。如果表很小,或者查询将返回大量行(假定,超过 25% 的表行),使用索引可能降低查询速度,因为搜索相关键值的索引然后再定位数据库表中的相应行需要花费系统开销。另一个重要的事实是,索引只能在构建索引时使用的列也包含在查询的 WHERE 子句中时才能提高查询性能。否则,仍必须执行全表扫描。
本文介绍了三个新的数据库概念:对查询结果进行分组、视图和索引。它们分别以各自的方式提供高级功能,从而使查询功能更强大、简化应用程序开发或提高已有查询的性能。到用 Apache Derby 进行开发 系列教程的这一部分为止,您已经了解了大量基本的数据库概念,这些概念都是必须在开发数据库应用程序之前掌握的。下一篇文章将转而开始利用 Apache Derby 数据库开发 Java 应用程序。
下载描述名字大小本文的 Derby SQL 脚本2KB
参考资料 查看本系列教程中的其他文章:
“”(developerWorks,2006 年 2 月)介绍了 Apache Derby 数据库,并为本系列教程中的很多主题提供了基础。“”(developerWorks,2006 年 3 月)介绍了 ij 工具,并演示了如何使用该工具连接到 Apache Derby 数据库。“”(developerWorks,2006 年 4 月)介绍了数据库模式和关系数据库表的概念,并演示了如何使用 SQL CREATE 语句创建基本数据库对象。“”(developerWorks,2006 年 5 月)介绍了用 Apache Derby 执行 SQL 脚本的概念,并演示了如何使用 SQL INSERT 语句将数据插入 Derby 数据库的表中。“”(developerWorks,2006 年 6 月)介绍了 SQL 查询的概念,并演示了如何使用 SQL SELECT 语句从 Derby 数据库中提取数据。“”(developerWorks,2006 年 7 月)构建在本系列教程的前一篇文章的基础上,并演示如何编写功能更强大的 SQL 查询,包括那些使用 Apache Derby 数据库支持的 SQL 函数的查询。“”(developerWorks,2006 年 8 月)讨论了如何删除和修改已有表中的数据,以及如何修改已有表的模式。访问
以获得关于如何使用 Derby 数据库的更详细的信息。了解如何
Apache Derby。访问
以获得大量的 how-to 信息、工具和项目更新信息,可以帮助您利用开放源码技术进行开发,并与 IBM® 的产品结合使用。查阅 developerWorks
以获得文章、教程和其他参考资料,帮助您现在就开始使用 Derby。了解关于
的更多信息,该数据库是使用 Apache Derby 代码库构建的。浏览 developerWorks Open source 专区中可获取的所有
浏览关于各种技术主题的书籍。从 Apache Derby Project 主页 。使用
改进您的下一个开放源码开发项目,这些软件可以通过下载或从 DVD 中获得。通过参与
加入 developerWorks 社区。
developerWorks: 登录
标有星(*)号的字段是必填字段。
保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件。
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
选择您的昵称
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。
您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
标有星(*)号的字段是必填字段。
(昵称长度在 3 至 31 个字符之间)
单击提交则表示您同意developerWorks 的条款和条件。 .
所有提交的信息确保安全。
文章、教程、演示,帮助您构建、部署和管理云应用。
立即加入来自 IBM 的专业 IT 社交网络。
为灾难恢复构建应用,赢取现金大奖。
static.content.url=/developerworks/js/artrating/SITE_ID=10Zone=Open source, Information ManagementArticleID=192445ArticleTitle=用 Apache Derby 进行开发 —— 取得节节胜利: 用 Apache Derby 进行数据库开发,第 7 部分publish-date=1、Java内嵌数据库Derby环境配置
在JDK环境配置好的情况下,进行如下操作:
1.先下载最新版Derby数据库
下载地址:
本人下载的是:db-derby-10.3.1.4-bin.zip
2.将db-derby-10.3.1.4-bin.zip解压到一目录下,我这里是才C:\Derby\db-derby-10.3.1.4-bin
3.查看“系统属性”——“高级”——“环境变量”,在“系统变量”下面新建变量“DERBY_INSTALL”,值为第2步的路径值C:\Derby\db-derby-10.3.1.4-bin
4.在CLASSPATH里增加“%DERBY_INSTALL%\lib\derby.%DERBY_INSTALL%\lib\derbytools.”内容
5.进入Derby安装目录“%DERBY_INSTALL%\bin”,双击运行文件setEmbeddedCP.bat
6.测试Derby数据库环境是否配置成功,打开命令提示符窗口,输入信息“java org.apache.derby.tools.sysinfo”,如出现诸如下面的信息:
C:\Documents and Settings\Administrator&java org.apache.derby.tools.sysinfo
------------------ Java 信息 ------------------
Java 版本:&&&&&&& 1.5.0_12
Java 供应商:&&&&& Sun Microsystems Inc.
Java 主目录:&&&&& C:\Program Files\Java\jdk1.5.0_12\jre
Java 类路径:&&&&& .;C:\Program Files\Java\jdk1.5.0_12\C:\Program Files\Java
\jdk1.5.0_12\lib\dt.C:\Program Files\Java\jdk1.5.0_12\lib\tools.C:\Derby
\db-derby-10.3.1.4-bin\lib\derby.C:\Derby\db-derby-10.3.1.4-bin\lib\derbytoo
ls.C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar
;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.
C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.C:\Pro
gram Files\MySQL\mysql-connector-java-5.0.7-bin.C:\Program Files\Apache Soft
ware Foundation\Tomcat 5.5\common\lib\servlet-api.C:\Program Files\Libs\dom4
j-1.6.1.jar
OS 名:&&&&&&&&&&& Windows XP
OS 体系结构:&&&&& x86
OS 版本:&&&&&&&&& 5.1
Java 用户名:&&&&& Administrator
Java 用户主目录:C:\Documents and Settings\Administrator
Java 用户目录:&&& C:\Documents and Settings\Administrator
java.specification.name: Java Platform API Specification
java.specification.version: 1.5
--------- Derby 信息 --------
JRE - JDBC: J2SE 5.0 - JDBC 3.0
[C:\Derby\db-derby-10.3.1.4-bin\lib\derby.jar] 10.3.1.4 - (561794)
[C:\Derby\db-derby-10.3.1.4-bin\lib\derbytools.jar] 10.3.1.4 - (561794)
------------------------------------------------------
----------------- 语言环境信息 -----------------
当前语言环境: [中文/中国 [zh_CN]]
找到支持的语言环境:[cs]
&&&&&&&& 版本:10.3.1.4 - (561794)
找到支持的语言环境:[de_DE]
&&&&&&&& 版本:10.3.1.4 - (561794)
找到支持的语言环境:[es]
&&&&&&&& 版本:10.3.1.4 - (561794)
找到支持的语言环境:[fr]
&&&&&&&& 版本:10.3.1.4 - (561794)
找到支持的语言环境:[hu]
&&&&&&&& 版本:10.3.1.4 - (561794)
找到支持的语言环境:[it]
&&&&&&&& 版本:10.3.1.4 - (561794)
找到支持的语言环境:[ja_JP]
&&&&&&&& 版本:10.3.1.4 - (561794)
找到支持的语言环境:[ko_KR]
&&&&&&&& 版本:10.3.1.4 - (561794)
找到支持的语言环境:[pl]
&&&&&&&& 版本:10.3.1.4 - (561794)
找到支持的语言环境:[pt_BR]
&&&&&&&& 版本:10.3.1.4 - (561794)
找到支持的语言环境:[ru]
&&&&&&&& 版本:10.3.1.4 - (561794)
找到支持的语言环境:[zh_CN]
&&&&&&&& 版本:10.3.1.4 - (561794)
找到支持的语言环境:[zh_TW]
&&&&&&&& 版本:10.3.1.4 - (561794)
------------------------------------------------------
Derby数据库环境已经基本配置好了
2、coolsql的连接
下载安装coolsql后,操作如下:
&& 1&新建一个书签,选择驱动
&&&& 找到derby.jar(或其他版本jar),选择下面的:org.apache.derby.jdbc.EmbeddedDriver 。
&& 2&下一步,输入用户名、密码,填写程序中赋值的:test,test;
&& 3&数据库名字填写时,要注意,写系统的绝对路径,
&&&&& 如:E:\derbyDB\testDB(如果数据库还没有建立,在后面再追加上[&&& ;create=true& ]& 就可以建立,以后保持带着也没事)
&&&&& 下面的url:jdbc:derby:E:\derbyDB\testDB(自动填写)。&
&& 4&保持连接就可以了。
声明:以上内容由网络文章改写而成
补充问题:
INFO& [ 21:00:21] Connecting to database : xx
ERROR [ 21:00:22] Error connecting to database. (java.lang.ExceptionInInitializerError - null)&&& SQLState=null&&& errorCode=0
问题原因:DB环境没有配置好,从新考虑第一步
ERROR [ 21:16:33] java.lang.NoClassDefFoundError: org/osgi/framework/BundleActivator
INFO& [ 21:17:22] Connecting to database : xxx
ERROR [ 21:17:22] Error connecting to database. (java.lang.NoClassDefFoundError - Could not initialize class org.apache.derby.jdbc.EmbeddedDriver)&&& SQLState=null&&& errorCode=0
问题原因:
&&&&&&&&& 1、DB环境没有配置好,从新考虑第一步
&&&&&&&&&& 2、coolsql中的驱动 是不是来自第一步中配置包
&&&&&&&&& 3、重启coolssql
INFO& [ 21:31:26] Connecting to database : xxx
ERROR [ 21:31:28] 数据库“D:\derbyDB\derbyDB\myDerbyDB”未找到。&&& SQLState=XJ004
&&& errorCode=40000
问题原因:数据库没有建立 考虑一下第二步的,步骤3中的(;create=true)
&&&&&&&&&&&&&&&&&
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:583次
排名:千里之外

我要回帖

更多关于 derby 创建数据库 的文章

 

随机推荐