我在寫一些使用Java DB(即Apache Derby)作爲數據庫的Java應用程序。我用下面的方法來連接數據庫:如何檢查另一個Derby實例是否已經啓動?
Connection getConnection() throws SQLException {
EmbeddedDataSource ds = new EmbeddedDataSource();
ds.setDatabaseName(dbUri);
ds.setPassword(password);
ds.setUser(username);
Connection conn = ds.getConnection();
conn.setSchema(schema);
return conn;
}
這工作不錯,但有時我得到以下異常:
java.sql.SQLException: Another instance of Derby may have already booted the database
發生這種情況時,我跑我的應用程序,並在同一時間的SQuirreL SQL客戶端已連接到我的數據庫。所以一切都按預期工作,但我希望能夠在我的getConnection()
方法中檢查這一點。換句話說,我想檢查是否有任何會話向我的數據庫打開,例如關閉它們,拋出我自己的異常或顯示錯誤對話框。我不知道該怎麼做。
THX