加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Neo4j连接字符串

发布时间:2020-12-15 04:29:16 所属栏目:Java 来源:网络整理
导读:我使用neo4j作为我的研究论文的图形数据库,我很难将neo4j2.3.1与简单的jdbc连接连接起来. 这是一个非常简单的代码,我用来连接到neo4j. import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;publ
我使用neo4j作为我的研究论文的图形数据库,我很难将neo4j2.3.1与简单的jdbc连接连接起来.

这是一个非常简单的代码,我用来连接到neo4j.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class Main {
    Main(){
        try {
            Class.forName("org.neo4j.jdbc.Driver");
        }catch (Exception ex){

        }
    }

    public static void main(String[] args) {

        try {
        Connection con = DriverManager.getConnection("jdbc:neo4j://localhost:7474");
        try(Statement stmt = con.createStatement()) {
            ResultSet rs = stmt.executeQuery("MATCH (n:User) RETURN n.name");
            while(rs.next()) {
                System.out.println(rs.getString("n.name"));
            }
        }

        }catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

这是日志,显示休息认证方案有些问题.

> Aug 27,2015 10:20:25 PM org.neo4j.jdbc.Driver createDatabases INFO:
> Embedded Neo4j support not enabled
> org/neo4j/graphdb/GraphDatabaseService Aug 27,2015 10:20:25 PM
> org.neo4j.jdbc.Driver createDatabases INFO: Embedded Neo4j support not
> enabled org/neo4j/graphdb/GraphDatabaseService Starting the Apache
> HTTP client Couldn't find any helper support the HTTP_None challenge
> scheme. Unauthorized (401) - Unauthorized     at
> org.restlet.resource.ClientResource.doError(ClientResource.java:612)
>   at
> org.restlet.resource.ClientResource.handleInbound(ClientResource.java:1202)
>   at
> org.restlet.resource.ClientResource.handle(ClientResource.java:1069)
>   at
> org.restlet.resource.ClientResource.handle(ClientResource.java:1044)
>   at
> org.restlet.resource.ClientResource.handle(ClientResource.java:950)
>   at org.restlet.resource.ClientResource.get(ClientResource.java:658)
>   at org.neo4j.jdbc.rest.Resources.readJsonFrom(Resources.java:97)    at
> org.neo4j.jdbc.rest.Resources$DiscoveryClientResource.readInformation(Resources.java:135)
>   at
> org.neo4j.jdbc.rest.Resources.getDiscoveryResource(Resources.java:65)
>   at
> org.neo4j.jdbc.rest.Resources.getDiscoveryResource(Resources.java:60)
>   at
> org.neo4j.jdbc.Neo4jConnection.getDiscoveryResource(Neo4jConnection.java:80)
>   at
> org.neo4j.jdbc.Neo4jConnection.createExecutor(Neo4jConnection.java:69)
>   at org.neo4j.jdbc.Neo4jConnection.<init>(Neo4jConnection.java:61)   at
> org.neo4j.jdbc.Connections$4.doCreate(Connections.java:51)    at
> org.neo4j.jdbc.Connections.create(Connections.java:62)    at
> org.neo4j.jdbc.Driver.connect(Driver.java:64)     at
> org.neo4j.jdbc.Driver.connect(Driver.java:36)     at
> java.sql.DriverManager.getConnection(DriverManager.java:571)
> Unauthorized (401) - Unauthorized at
> java.sql.DriverManager.getConnection(DriverManager.java:233)  at
> Main.main(Main.java:20)   at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)   at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>   at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:606)     at
> com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)

我正在使用neo4j2.3.1,因为它带有用户名neo4j的默认验证.

解决方法

You need to import these neo4j packages,

import org.neo4j.jdbc.Driver;

import org.neo4j.jdbc.Neo4jConnection;

然后尝试这些,

Neo4jConnection conn;
ResultSet rs;     
   		
public static void main(String[] args) {
            try{
                final Driver driver = new Driver();   //org.neo4j.jdbc.Driver 			
                final Properties props = new Properties();
                props.put("user","your username");
                props.put("password","your password");   
            	String url="jdbc:neo4j://localhost:7474";
                conn = driver.connect(url,props); 
            	
            	Statement stmt = conn.createStatement()
            	rs = stmt.executeQuery("MATCH (n:User) RETURN n.name");
            		while(rs.next()) {
                    System.out.println(rs.getString("n.name"));
            		}        				
                	}
               catch (SQLException e) {
                throw new RuntimeException(e);
                }
            	}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读