如何设置与neo4j的jdbc连接?

时间:2015-06-28 21:35:18

标签: jdbc neo4j jdbctemplate

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

从我所看到的,我只需要导入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) 

2 个答案:

答案 0 :(得分:-1)

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

您的JDBC网址是什么样的?

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

答案 1 :(得分:-1)

尝试改变 的 Food

<强> for (int i = 0; i < food.size(); i++) { Foot currentFood = food.get(i); if (currentFood.getuseDate() < day && currentFood.getDateOpened() != null && yourConditionAboutDateOpened) { foodToRemove.add(food.get(i)); } }