在neo4j中使用jdbc创建节点时出现问题

时间:2013-11-05 13:42:36

标签: java neo4j

你能帮帮我吗?我是neo4j的新手。

当我试图在eclipse控制台中使用JDBC动态创建节点时,它显示了创建的节点,但是当我访问neo4j url时,它没有显示任何节点。

遵循代码

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.RelationshipType;
import org.neo4j.graphdb.Transaction;
import org.neo4j.graphdb.factory.GraphDatabaseFactory;
import org.neo4j.graphdb.factory.GraphDatabaseSettings;

import Utilities.IConstants;

public class NodesCreationUsingJDBC {

    static GraphDatabaseService db;
    private static final String DB_PATH = IConstants.DB_PATH;

    private static enum RelTypes implements RelationshipType {
        KNOWS
    }

    public static void main(String[] args) throws SQLException, ClassNotFoundException {  
        NodesCreationUsingJDBC nodesCreationUsingJDBC = new NodesCreationUsingJDBC();
        Connection connect = null;
        Statement statement = null;
        ResultSet resultSet = null;
        Class.forName("com.mysql.jdbc.Driver");
        connect = DriverManager.getConnection("jdbc:mysql://localhost/prasad?user=root&password=root");
        statement = connect.createStatement();
        resultSet = statement.executeQuery("select * from user");
        nodesCreationUsingJDBC.createNodes(resultSet);       
    }

    public void createNodes(ResultSet resultSet) throws SQLException {
        db = new GraphDatabaseFactory().newEmbeddedDatabaseBuilder( DB_PATH ).
                setConfig( GraphDatabaseSettings.node_keys_indexable, "firstName,lastName" ).
                setConfig( GraphDatabaseSettings.node_auto_indexing, "true" ).
                setConfig( GraphDatabaseSettings.relationship_auto_indexing, "true" ).newGraphDatabase();
        Transaction tx = db.beginTx();
        String firstName="";
        String lastName="";
        try {
            while (resultSet.next()) {  
                firstName=resultSet.getString("firstname"); 
                lastName=resultSet.getString("lastname"); 
                Node datanode = db.createNode();
                datanode.setProperty("lastName",lastName);
                Node node = db.createNode();
                node.setProperty( firstName, firstName );
                node.createRelationshipTo( datanode, RelTypes.KNOWS );
                System.out.println(datanode.getProperty("lastName"));
                System.out.println("name--------->"+firstName); 
                // createAndConnectNode( firstName, datanode,RelTypes.KNOWS );                     
            }
            tx.success();
        } finally{
            tx.finish();
        }
        System.out.println("BEFORE DB SHUTDOWN");
        db.shutdown();
    }

    public  Node createAndConnectNode( String name, Node otherNode, RelationshipType relatiohshipType ) {
        Node node = db.createNode();
        node.setProperty( name, name );
        node.createRelationshipTo( otherNode, relatiohshipType );
        System.out.println(otherNode);
        System.out.println("name--------->"+name); 
        return node;
    }
}

1 个答案:

答案 0 :(得分:1)

您的问题很可能是从两个不同的位置保存和读取数据。确保保存节点的DB_PATH确实是您从哪里读取的。我建议你安装Neoclipse并使用它来查看DB_PATH的确切内容。