我的理解是,虽然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)
答案 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));
}
}
强>