Java 如何使用Neo4j jdbc连接到Neo4j 3.0数据库?

Java 如何使用Neo4j jdbc连接到Neo4j 3.0数据库?,java,maven,jdbc,neo4j,Java,Maven,Jdbc,Neo4j,你好, 我在eclipse中创建了一个maven项目,并添加了依赖项: <dependency> <groupId>org.neo4j</groupId> <artifactId>neo4j-jdbc</artifactId> <version>3.0</version> </dependency> 我无法将其编译为: DriverManager无法在neo4j-jdbc-3

你好,

我在eclipse中创建了一个maven项目,并添加了依赖项:

<dependency>
    <groupId>org.neo4j</groupId>
    <artifactId>neo4j-jdbc</artifactId>
    <version>3.0</version>
</dependency>
我无法将其编译为:

DriverManager
无法在neo4j-jdbc-3.0中解析

Prepared stmt=con.preparest陈述(查询)导致类型不匹配

对于类型
org.neo4j.jdbc.Connection


我非常感谢您对此事的建议和专业知识,谢谢。
DriverManager
Connection
PreparedStatement
ResultSet
都是来自
java.sql
包的类或接口,它是JDK的一部分。我猜文档假定您将使用IDE,它将为您找到正确的导入

这就是使用JDBC驱动程序的要点:您使用的是JDBC API,而不是专有API(即在供应商包中)


更新

Neo4jJDBC自述文件中有一个输入错误,应该是

ResultSet rs = stmt.execute();
而不是

ResultSet rs = con.execute();
否则,
PreparedStatement
没有使用(并且代码没有编译,因为
Connection.execute()
没有参数重载)


更新2

文档中的依赖关系也是错误的,因为
neo4jdbc
不包含任何驱动程序

你应该依靠:

  • 一体式模块,使您有机会使用Bolt或HTTP协议:

    
    org.neo4j
    neo4j jdbc驱动程序
    3
    
  • 或特定协议的模块:

    <dependency>
        <groupId>org.neo4j</groupId>
        <artifactId>neo4j-jdbc-bolt</artifactId>
        <version>3.0</version>
    </dependency>
    <!-- or -->
    <dependency>
        <groupId>org.neo4j</groupId>
        <artifactId>neo4j-jdbc-http</artifactId>
        <version>3.0</version>
    </dependency>
    
    
    org.neo4j
    neo4j jdbc螺栓
    3
    org.neo4j
    Neo4jJDBCHTTP
    3
    

更新3

这两个问题现已在项目文档中修复。

更改为:

<dependency>
    <groupId>org.neo4j.driver</groupId>
    <artifactId>neo4j-java-driver</artifactId>
    <version>1.0.4</version>
</dependency>
我想我会与大家分享,因为它可以立即工作,没有任何麻烦。


在做了这些更改之后,
con.execute
仍然没有定义(我把它注释掉是为了让它可以运行)。运行代码后,它抛出一个SQLException
未找到适合jdbc:neo4j的驱动程序:bolt://localhost
。我还做错了什么?为了完整性,我已经用代码和依赖项修复更新了答案。我尝试测试了这一点,并做了建议的更改,但仍然无法建立连接。这就是我使用的,包括SQLException抛出的错误消息。我还做错了什么?正如消息所说,您的JDBC URL是错误的(在上面的问题中是正确的):您有
bolt/localhost
而不是
bolt://localhost
。如果使用默认端口,则无需指定端口。
<dependency>
    <groupId>org.neo4j</groupId>
    <artifactId>neo4j-jdbc-bolt</artifactId>
    <version>3.0</version>
</dependency>
<!-- or -->
<dependency>
    <groupId>org.neo4j</groupId>
    <artifactId>neo4j-jdbc-http</artifactId>
    <version>3.0</version>
</dependency>
<dependency>
    <groupId>org.neo4j.driver</groupId>
    <artifactId>neo4j-java-driver</artifactId>
    <version>1.0.4</version>
</dependency>
public static void main(String[] args) {
    Driver driver = GraphDatabase.driver( 
        "bolt://localhost", AuthTokens.basic( "neo4j", "neo4j" ) );
    Session session = driver.session();

    session.run( "CREATE (a:Person {name:'Arthur', title:'King'})" );

    StatementResult result = session.run( 
                                        "MATCH (a:Person) 
                                         WHERE a.name = 'Arthur' 
                                         RETURN a.name AS name, a.title AS title");

    while ( result.hasNext() ) {
        Record record = result.next();
        System.out.println( record.get( "title" ).asString() + 
                                " " + record.get("name").asString() );
    }

    session.close();
    driver.close();
}