java - neo4j-jdbc 驱动程序最小可行片段,不确定如何解决依赖关系

标签 java database jdbc neo4j graph-databases

我在获取 Neo4J-jdbc 驱动程序工作的最小可行代码段时遇到问题。我在 gradle 中使用 intelliJ idea。当我 import org.neo4j.jdbc.*; 时,DriverManager 无法解析并且多次出现 Unhandled Exception: java.sql.SQLException。当我 import java.sql.* 时,有更多的 java.sql.SQLException 错误。当我同时导入这两个库时,会出现多个错误,因为两个库之间的引用不明确。

官方文档中的最小可行代码段如下:

// Connecting
try (Connection con = DriverManager.getConnection("jdbc:neo4j:bolt://localhost", 'neo4j', password)) {

    // Querying
    String query = "MATCH (u:User)-[:FRIEND]-(f:User) WHERE u.name = {1} RETURN f.name, f.age";
    try (PreparedStatement stmt = con.prepareStatement(query)) {
        stmt.setString(1,"John");

        try (ResultSet rs = stmt.execute()) {
            while (rs.next()) {
                System.out.println("Friend: "+rs.getString("f.name")+" is "+rs.getInt("f.age"));
            }
        }
    }
}

Gradle 依赖:

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    compile group: 'org.neo4j', name: 'neo4j-jdbc-bolt', version: '3.1.0'
    compile 'com.sparkjava:spark-core:2.3'
}

我真的在这里寻找一个最小的实现,我只是想知道我错过了什么来让最小的代码段工作。

最佳答案

您需要导入 java.sql.*,仅此而已。是的,您将遇到一些 SQLException,但您只需在 catch 中处理它们 或通过在您的方法签名中添加异常(如下所示)。

代码片段中有一个错误,stmt.execute() 返回一个 boolean 而不是 ResultSet,因此您需要将其替换为 stmt.executeQuery()

这是一个完整/有效的例子:

import java.sql.*;

public class JDBCTest {

  public static void main() throws SQLException {

        // Connecting
        try (Connection con = DriverManager.getConnection("jdbc:neo4j:bolt://localhost", "neo4j", "admin")) {

            // Querying
            String query = "MATCH (u:User)-[:FRIEND]-(f:User) WHERE u.name = {1} RETURN f.name, f.age";
            try (PreparedStatement stmt = con.prepareStatement(query)) {
                stmt.setString(1,"John");

                try (ResultSet rs = stmt.executeQuery()) {
                    while (rs.next()) {
                        System.out.println("Friend: "+rs.getString("f.name")+" is "+rs.getInt("f.age"));
                    }
                }
            }
        }
    }
}

关于java - neo4j-jdbc 驱动程序最小可行片段,不确定如何解决依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50143228/

相关文章:

database - Percona 的 pt-table-sync : how to run on more than one table?

java - 数据库连接问题 - 由 : java. sql.SQLRecoverableException 引起:IO 错误:指定了未知主机

apache-spark - Spark JDBC从Hive读取和写入

java - 用 Java 模拟 Oracle SPOOL

Java - 需要扩展Applet,但已经继承了另一个类

java - ArrayList 彩票游戏

java - 解析交易中的一对多关系会返回不完整的集合

sql - 帮助优化 MySQL 表(约 500,000 条记录)和 PHP 代码

c# - 在哪里将数据库置于 visual studio 解决方案下以进行构建并单击一次部署?

java - 如何解决 java.lang.VerifyError : org/apache/poi/xssf/usermodel/XSSFWorkbook?