在neo4j中从java创建节点时,我在neo4j中看不到该节点

在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

我是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
    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(); )