Java Neo4j jdbc驱动程序中的数据库连接池
在我的应用程序中,我将使用neo4j-community-2.3.0-M02和neo4jjdbc2.3.2。它会创建大量线程,每个线程应执行3或4个密码查询。要执行查询,我使用以下方法Java Neo4j jdbc驱动程序中的数据库连接池,java,jdbc,neo4j,Java,Jdbc,Neo4j,在我的应用程序中,我将使用neo4j-community-2.3.0-M02和neo4jjdbc2.3.2。它会创建大量线程,每个线程应执行3或4个密码查询。要执行查询,我使用以下方法 private ResultSet executeCypher(String queryString) throws Exception { try { String restUrl = getPropertiesCache().getCofigProperty("neo4j_ur
private ResultSet executeCypher(String queryString) throws Exception {
try {
String restUrl = getPropertiesCache().getCofigProperty("neo4j_url");
String driver = getPropertiesCache().getCofigProperty("neo4j_driver");
String userName = getPropertiesCache().getCofigProperty("neo4j_user");
String passWord = getPropertiesCache().getCofigProperty("neo4j_pwd");
Class.forName(driver);
try{
Neo4jConnection connection = (Neo4jConnection)
DriverManager.getConnection(restUrl, userName, passWord);
try {
PreparedStatement stmt = connection.prepareStatement(queryString);
try{
ResultSet rs = (ResultSet) stmt.executeQuery(queryString);
stmt.close();
connection.close();
return rs;
}catch (SQLException e){
e.printStackTrace();
} catch (NullPointerException e1){
e1.printStackTrace();
} catch (RuntimeException e2){
e2.printStackTrace();
}
if(!stmt.isClosed()){
stmt.close();
}
}catch (Exception e){
e.printStackTrace();
}
if(!connection.isClosed()){
connection.close();
}
}catch (Exception e){
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
这意味着我正在为每个cypher查询创建db连接。我认为这是一个非常糟糕的主意,因为当创建大量连接时,大多数连接开始超时。我认为db连接池将有助于解决这个问题,或者有没有比连接池更好的方法
如果连接池解决了这个问题,请举例说明如何使用neo4j jdbc驱动程序创建db连接池 neo4j jdbc 2.3X驱动程序使用REST API连接到数据库,基本上它们是使用Restlet API的http调用,因此在创建/关闭jdbc连接时没有打开或关闭连接。neo4j jdbc 2.3X驱动程序使用REST API连接到数据库,基本上它们是使用Restlet API的http调用,因此,在创建/关闭JDBC连接时,不会打开或关闭任何连接。您可以使用该库的版本3吗?您可以使用该库的版本3吗?它不会仍然为每个查询打开/关闭HTTP连接吗?如果你想限制同时请求的数量?这正是连接池的想法……当使用neo4j jdbc时,我们无法访问http客户端/连接池。它不是仍然可以为每个查询打开/关闭http连接吗?如果你想限制同时请求的数量?这就是连接池的概念……当使用Neo4jJDBC时,我们无法访问http客户机/连接进行池