2016-03-05 79 views
0

我有一個包含嵌入式HSQLDB數據庫的進程。該數據庫啓動時的緩存設置:直接訪問嵌入式緩存的HSQLDB服務器?

db = new Server(); 
db.setNoSystemExit(true); 
db.setDaemon(true); 
db.setDatabaseName(0, "store"); 
// default to cached or this will turn into an in-memory db by default 
db.setDatabasePath(0, "file:" + new File(dataDirectory + "/store/db").getAbsolutePath() 
    + ";hsqldb.default_table_type=cached;hsqldb.result_max_memory_rows=" + maxMemoryRows + ";hsqldb.cache_file_scale=" + cacheFileScale); 
db.setPort(DefaultEndpoints.getPort(baseport, Ports.STORE_DB_OFFSET)); 
db.start(); // 

我通過正常的JDBC連接字符串連接到該數據庫沒有問題:

final String connStr = "jdbc:hsqldb:hsql://" + host + ":" + port + "/" + DB_NAME; 

這工作得很好。但是我有一系列的查詢,我在與服務器相同的過程中發起。有沒有辦法直接連接到服務器,而沒有通過Socket?我想知道是否可以通過這種方式實現一些性能增益。

回答

1

的JDBC URL直接連接到數據庫:

"jdbc:hsqldb:file:" + new File(dataDirectory + "/store/db").getAbsolutePath() 
+0

我也可以驗證這一點也適用多個線程訪問數據庫,並在MVCC模式。 –