Java Neo4j可视化和检索数据
开始使用嵌入JAVA web服务器的Neo4j。保存数据时,交易成功,但无法通过浏览器可视化数据 已尝试了来自的示例Hello world。在指向DB并导航到“我看不到任何数据”之后,安装了neo4j社区版 另外,当我停止应用程序并通过Java运行Cypher查询时,不会获取任何数据 使用Maven依赖项Java Neo4j可视化和检索数据,java,maven,neo4j,Java,Maven,Neo4j,开始使用嵌入JAVA web服务器的Neo4j。保存数据时,交易成功,但无法通过浏览器可视化数据 已尝试了来自的示例Hello world。在指向DB并导航到“我看不到任何数据”之后,安装了neo4j社区版 另外,当我停止应用程序并通过Java运行Cypher查询时,不会获取任何数据 使用Maven依赖项 <dependency> <groupId>org.neo4j</groupId> <
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j</artifactId>
<version>2.3.1</version>
</dependency>
嵌入式和服务器的数据库路径相同 我不知道问题的确切根源。但我有清单,应该核实一下 1) 您的应用程序和Neo4j服务器应该使用相同的数据库。当您通过
GraphDatabaseFactory
创建embdeded数据库时,您指定的是数据库位置。应在conf/Neo4j server.properties
文件(org.Neo4j.server.database.location
选项)中为Neo4j服务器指定相同的数据库位置
2) 您应该不要在服务器和应用程序中同时使用数据库。数据库一次只能由一个Neo4j实例使用
3) 对事务使用try with resource
语法。它有Java7和更高版本。例如:
try (Transaction tx = db.beginTx()) {
// do stuff
tx.success();
}
这样,在任何情况下(即使在执行期间或在beginTx()
中发生异常),事务都将始终关闭
4) 确保数据库以“干净的方式”关闭。在应用程序中,可以通过
db.shutdown()
方法完成。服务器可以通过bin/neo4j stop
停止。如果您使用的是try with resource语法,您是否仍需要在finally
子句中关闭事务?@Supamiu nope。交易“自动”关闭。try with resource
语法的全部要点。它在try块结束时关闭资源。基本上,在引擎盖下,它会生成最后的块,经过所有必要的检查。@FylmTM更改为try with resource已经解决了问题。我真的很高兴知道它的本质。在此之前没有发生异常,但尝试使用资源是有效的。@Itachi在更改之前和之后,如果不检查完整的源代码,很难判断发生了什么。通常是关于API的一些奇怪的误用。
try (Transaction tx = db.beginTx()) {
// do stuff
tx.success();
}