HSQLDB 从不关闭数据库连接

我在玩这种数据库,我用过后尝试关闭HSQLDB连接,但最后还是打开了。


代码:


//----This methods are in a specific connection class file

    public static Connection conn = null;

    public static Connection getConnection(){       

        try {

            input = new FileInputStream("PathToMyPropertiesFile");

            prop.load(input);

            //The properties constants are correctly checked

            Class.forName(prop.getProperty("DRIVER_HSQLDB"));

            conn = DriverManager.getConnection(prop.getProperty("CONN_HSQLDB"));

        }

        catch(ClassNotFoundException | SQLException e) {

            LOG.log(null,"Error: "+e);

        }

        catch (IOException ex) {

            LOG.log(null,"FILE ERROR: "+ex);

        }

        finally {

            if (input != null) {

                try {

                    input.close();

                } catch (Exception e) {

                    LOG.log(null,"CLOSE ERROR: "+e);

                }

            }

        }   

        return conn;

    }

public static boolean stopConn() {

        try {

            if(conn != null) {

                conn.close();

                System.err.println("\nCLOSE CONN\n"+conn);

                return true;

            }

        } 

        catch (SQLException e) {

            e.printStackTrace();

            return false;

        }

        return false;

    }


控制台给了我这个结果,我不知道为什么连接从来没有关闭,因为我试图关闭它两次。如果有人有想法请告诉我。


白衣非少年
浏览 122回答 1
1回答

繁华开满天机

关闭 JDBC 连接不会关闭进程内数据库。这允许您在应用程序运行时打开和关闭不同的连接。您需要执行 JDBC 语句来关闭数据库。要执行的 SQL 语句是“SHUTDOWN”。可以将连接属性“shutdown=true”添加到 JDBC 连接 URL,以在与进程内数据库的最后一个连接关闭时强制快速关闭。但这主要对只读或测试数据库有用。完全 SHUTDOWN 允许数据库在下次建立连接时快速打开。请参阅指南http://hsqldb.org/doc/2.0/guide/running-chapt.html#rgc_inprocess
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java