neo4j-java連接


本例使用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問題真不小

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM