关于关闭Java DB(Derby)时抛出异常的问题

在前面两篇 http://blog.matrix.org.cn/comments/icess/Weblog/use_derby_with_clob_and  文章中,我简单介绍了如何使用Java DB操作数据,今天发现一个关于关闭数据库的问题, 就是在调用前面例子中的关闭数据库代码时候总是抛出异常 ,后来到文档里面看看 ,原来在关闭数据库时候, Derby总是抛出异常,我还以为是我那个地方写错了呢?

以前例子中没有显示异常信息 是应为 在关闭数据库的方法中没有使用 打印异常信息的语句, 如下

public void disconnect() {
        if(isConnected) {
            String dbUrl = getDatabaseUrl();
            dbProperties.put("shutdown", "true");
            try {
                DriverManager.getConnection(dbUrl, dbProperties);
            } catch (SQLException ex) {
             //ex.printStackTrace();   // 前面的例子没有该句, 如果加上该句,就会看的异常信息
            }
            isConnected = false;
        }
    }

 

所以,当大家看到下面的异常时候,不用担心 不是你的代码写错了,而是程序正确关闭数据库的提示(有点违背异常的设计初衷哦).

ERROR 08006: Database 'TestClob' shutdown.
 at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
 at org.apache.derby.impl.jdbc.TransactionResourceImpl.shutdownDatabaseException(Unknown Source)
 at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)

...........
21:10 补充:

使用Java DB的最佳实践

Recommended practices

When developing Derby applications, create a single directory to hold your database or databases. Give this directory a unique name, to help you remember that:
  • All databases exist within a system.
  • System-wide properties affect the entire system, and persistent system-wide properties live in the system directory.
  • You can boot all the databases in the system, and the boot-up times of all databases affect the performance of the system.
  • You can preboot databases only if they are within the system. (Databases do not necessarily have to live inside the system directory, but keeping your databases there is the recommended practice.)
  • Once you connect to a database, it is part of the current system and thus inherits all system-wide properties.
  • Only one instance of Derby can run in a JVM at a single time, and only one instance of Derby should boot a database at one time. Keeping databases in the system directory makes it less likely that you would use more than one instance of Derby.
  • The error log is located inside the system directory.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值