本例使用neo4j3.0.1架包
使用maven下載架包
<!-- https://mvnrepository.com/artifact/org.neo4j/neo4j-jdbc-driver --> <dependency> <groupId>org.neo4j</groupId> <artifactId>neo4j-jdbc-driver</artifactId> <version>3.0.1</version> </dependency> <!-- https://mvnrepository.com/artifact/org.neo4j/neo4j --> <dependency> <groupId>org.neo4j</groupId> <artifactId>neo4j</artifactId> <version>3.0.1</version> </dependency>
在如下設置未開啟權限認證時,
# Disable authorization dbms.security.auth_enabled=false
java程序
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class TestNeo4jJdbc { public static void main(String[] args) throws SQLException { Connection con = DriverManager.getConnection("jdbc:neo4j:http://xxxxx:7474", "neo4j", "xxxx"); // Querying try (Statement stmt = con.createStatement()) { ResultSet rs = stmt.executeQuery("MATCH (n) RETURN n"); while (rs.next()) { System.out.println(rs.getString("n")); } } } }
打印
如開啟權限認真時,發現上面已經無法訪問
提示錯誤
[Neo.ClientError.Security.AuthorizationFailed]:No authorization header suppl
...
錯誤分析請看這里:
http://stackoverflow.com/questions/32505398/neo-clienterror-security-authorizationfailed-for-unmanaged-extension
但是看玩還是未解決需要的答案,
另一種解決方案,不使用jdbc原生連接,使用neo4j-ogm-http-driver.jar中的org.neo4j.ogm.config.configuration去間接創建sessionFactory和session
這里我使用的是
neo4j-ogm-http-driver-2.0.3.jar
具體代碼
Configuration config = new Configuration(); config.driverConfiguration().setDriverClassName("org.neo4j.ogm.drivers.http.driver.HttpDriver").setURI("http://neo4j:a123456@xxx.xx.xx.xxx:7474"); SessionFactory sessionFactory = new SessionFactory(config, "xxx.model"); Session session = sessionFactory.openSession(); Result result = session.query("MATCH (n) RETURN count(n)",new HashMap<String, String>() ); Iterable<Map<String, Object>> iterator = result.queryResults(); for (Map<String, Object> map : result) { System.out.println(map); }
打印了結果
初次學校使用neo4j問題真不小