在neo4j中从java创建节点时,我在neo4j中看不到该节点
我是neo4j的新手,我正在努力学习 在neo4j中创建节点的java代码如下,然后在java中读取已创建节点的属性名称,代码如下:在neo4j中从java创建节点时,我在neo4j中看不到该节点,neo4j,Neo4j,我是neo4j的新手,我正在努力学习 在neo4j中创建节点的java代码如下,然后在java中读取已创建节点的属性名称,代码如下: String DB_PATH = "C:/hamed"; public static void main( String[] args ) { JavaQuery javaQuery = new JavaQuery(); javaQuery.run(); } void run() { // START SNIPPET: addData
String DB_PATH = "C:/hamed";
public static void main( String[] args )
{
JavaQuery javaQuery = new JavaQuery();
javaQuery.run();
}
void run()
{
// START SNIPPET: addData
GraphDatabaseService db = new GraphDatabaseFactory().newEmbeddedDatabase( DB_PATH );
db.beginTx();
try ( Transaction tx = db.beginTx(); )
{
Node myNode = db.createNode();
myNode.addLabel( DynamicLabel.label( "11" ) );
myNode.setProperty( "name", "qq" );
tx.success();
}
// END SNIPPET: addData
// START SNIPPET: execute
ExecutionEngine engine = new ExecutionEngine( db );
ExecutionResult result;
try ( Transaction ignored = db.beginTx() )
{
result = engine.execute( "match (n) return n, n.name" );
// END SNIPPET: execute
// START SNIPPET: items
Iterator<Node> n_column = result.columnAs( "n" );
for ( Node node : IteratorUtil.asIterable( n_column ) )
{
// note: we're grabbing the name property from the node,
// not from the n.name in this case.
nodeResult = node + ": " + node.getProperty( "name" );
System.out.println("ss : "+nodeResult);
}
// END SNIPPET: items
db.shutdown();
}
然后,当我编写查询以检查节点时,不会返回任何结果:
但是我希望看到一个名为qq属性的节点
有人能帮我吗?我做错了什么
更新:
我知道代码只从数据库中删除所有节点。例如,我创建了一个节点,并用neo4j控制台检查它:匹配(n)返回n和节点返回,但运行代码后没有返回任何内容,这非常奇怪 在查看服务器时,您是否碰巧没有关闭java中的图形数据库? 我在您的代码中没有看到任何
db.shutdown()
一次只能有一个进程可以访问数据库目录。您的所有数据库交互都在一个事务中运行,该事务永远不会成功(),因此当应用程序完成时,它会回滚 这是由于您在创建db的行之后立即添加了db.beginTx(),即此代码段中的第二行:
GraphDatabaseService db = new GraphDatabaseFactory().newEmbeddedDatabase( DB_PATH );
db.beginTx();
try ( Transaction tx = db.beginTx(); )
删除
db.beginTx()代码>行,你会没事的。谢谢你的回答,我添加了db.shutdown(),但仍然存在同样的问题:(即使在java访问数据库之前,我也应该关闭neo4j服务器,这表明java在同一数据库中创建节点,我应该能够看到节点,但我看不到……非常奇怪,你真是太棒了,伙计:)
GraphDatabaseService db = new GraphDatabaseFactory().newEmbeddedDatabase( DB_PATH );
db.beginTx();
try ( Transaction tx = db.beginTx(); )