繁体   English   中英

neo4j:以Java发送的有限查询

[英]neo4j : Limited queries sent in java

对于在Tomcat下开发的网站,我将程序连接到数据库neo4j。 通过jdbc完成连接。 我的程序现在是本地的,数据库在远程服务器上。 当我启动Tomcat时,它首先检查是否存在特定的节点,如果不存在,则会创建它们。 大约有135个节点。 问题:大约十点之后,程序停止运行,并停留在无限循环之类的状态。 我想我应该关闭一些东西,但是呢? 这是我的代码:

private ResultSet sendCommand(String command) throws SQLException
    {
        try(Statement statement = _neo4jConnection.createStatement())
        {
            return statement.executeQuery(command);
        }
    }

和一个调用此代码的函数(所有函数都基于相同的结构)

public static Long createNode(NodeLabel labelName)
    {
        try
        {
            ResultSet rs = getInstance().sendCommand("CREATE (n:"+labelName+") RETURN id(n)");
            Long result= rs.next()?rs.getLong("id(n)"):null;
            rs.close();
            return result;
        } catch (SQLException e) {
            e.printStackTrace();
            return null;
        }       
    }

在我最新的实验中,我多次重用了同一条语句,虽然不确定这是最好的方法,但似乎也能很好地工作。

https://github.com/peterneubauer/blogs/tree/master/csv_jdbc ,代码位于https://github.com/peterneubauer/blogs/blob/master/csv_jdbc/src/test/java/org/neo4j/jdbctest/ JDBCTest.java

我发现的唯一解决方案是定期断开连接并重新连接到数据库(大约20条语句之后)。 这太可怕了,但是行得通。 好吧,但是,我放弃了针对neo4j的jdbc,太多的问题和灾难性的性能(获取一个简单数据大约需要1s),发生了更多的问题!

无论如何,谢谢您的帮助

尼可

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM