【问题标题】:How do I set up a jdbc connection to neo4j?如何设置与 neo4j 的 jdbc 连接?
【发布时间】:2015-09-15 06:51:33
【问题描述】:

我的理解是,虽然 jdbc 通常用于 SQL 查询,但因为 SQL 查询本质上只是一个字符串,所以 JDBC 不会知道它是 SQL 查询还是密码查询。

据我所知,我只需要导入 neo4j jdbc 驱动程序,并使用它将我的密码查询传递给 neo4j 数据库。

pom.xml

    <dependency>
        <groupId>org.neo4j</groupId>
        <artifactId>neo4j-jdbc</artifactId>
        <version>2.1.4</version>
        <type>pom</type>
    </dependency>

现在我正在尝试这样的事情:

    this.dataSource = new DriverManagerDataSource(this.DBURL,this.USERNAME, this.PASSWORD);


    this.dataSource.setDriverClassName("org.neo4j.jdbc.Driver");        
    this.jdbcTemplate  = new JdbcTemplate(this.dataSource); 

    String qq = "MATCH (n:Individual) RETURN n LIMIT 25;";      
    Map<String,Object> res = jdbcTemplate.queryForMap(qq); //I actually just want to return a JSON string, but this is the only example I can find for now

这段代码会给我:

java.lang.ClassNotFoundException: org.neo4j.jdbc.Driver
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:274)
    at org.springframework.jdbc.datasource.DriverManagerDataSource.setDriverClassName(DriverManagerDataSource.java:127)

我在这里做错了什么?驱动类的正确名称是什么?

我也试过了

Class.forName("org.neo4j.jdbc.Driver");

我得到:

java.lang.ClassNotFoundException: org.neo4j.jdbc.Driver
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:191) 

【问题讨论】:

标签: jdbc neo4j jdbctemplate


【解决方案1】:

您通常必须先执行Class.forName("org.neo4j.jdbc.Driver") 才能加载驱动程序类。

您的 JDBC URL 是什么样的?

请注意,JDBC 驱动程序(在远程情况下)将返回一个带有每个节点数据的Map

【讨论】:

  • 我已经尝试过了,但仍然出现错误。检查更新的帖子。你能解释一下 Class.forName 的作用吗?
  • jdbc:neo4j://myhost:8080/url
  • 自 2007 年以来并不“通常”。
【解决方案2】:

尝试改变 Class.forName("org.neo4j.jdbc.Driver")

Class.forName("org.neo4j.jdbc.Driver").newInstance()

【讨论】:

  • 问题显示抛出“ClassNotFoundException”。尝试创建一个甚至无法加载的类的实例也无济于事。
猜你喜欢
  • 1970-01-01
  • 2012-02-19
  • 1970-01-01
  • 1970-01-01
  • 2020-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多