2016-03-05 39 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模式。 –