java 链接neo4j数据库方法

国内很多人在neo4j开发过程中应该参考的都是w3c.school 的开发手册,在开发手册中没有提供链接默认数据库的方法,而且提供的服务器版本和浏览器启动的并不是一个版本。现在就给大家提供两种java连接案默认数据库方法。
一、使用JDBC连接neo4j数据库,类似于Java连接mysql 的方法:具体代码如下:


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


public class CreaBase {  

    public static void main(String[] args) throws SQLException {  
        // TODO Auto-generated method stub  
        Connection con = DriverManager.getConnection("jdbc:neo4j://127.0.0.1:7474/","neo4j","123");  //这里可以使用localhost,最好还是使用ip地址,

        //Querying  
        try(Statement stmt = con.createStatement())  
        {  
         ResultSet rs = stmt.executeQuery("create (n0:employ { name: 'S' }),(ma:manage { name: 'A1' })");           
         while(rs.next())  
         {  
             System.out.println(rs.getString("n"));  
         }  
        }  
    }   
}  

亲测有效!代码中连接数据库之后创建了两个节点,现在去浏览器里面是查找这两个节点:
1、match(n0:employ)return n0
这里写图片描述
2、match(ma:manage)return ma
这里写图片描述
但是这种方法也有些缺陷:由于是使用Java集成包连接的数据库,在连接之后使用的jdbc中的方法去操作数据库,neo4j数据库和关系型数据库在反馈的结果形式有差异,所以使用jdbc 对数据操作时不是很方便。
例如下面这段代码在执行过程中会出错,getString(“ma.id”)并不能执行:

Connection con = DriverManager.getConnection("jdbc:neo4j://127.0.0.1:7474/","neo4j","123");  

        //Querying  
        try(Statement stmt = con.createStatement())  
        {  
//         ResultSet rs1 = stmt.executeQuery("create (n0:employ { name: 'S1',id:'123' }),(ma:manage { name: 'A2',id:'456' })");
         ResultSet rs=stmt.executeQuery("match (ma:manage) where ma.id='456' return ma");
         while(rs.next())  
         {  
             System.out.println(rs.getString("ma.id"));  
         }  

二、在查阅英文开发文档之后发现方法newEmbeddedDatabase(file)在执行过程中会检查路径中时候有这个文件(file),如果有就对这个数据库进行操作,在间接默认数据库时,只需将file的路径改成graph.db的路径即可。代码如下:

import java.io.File;
import java.sql.Driver;

import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Relationship;
import org.neo4j.graphdb.Transaction;
import org.neo4j.graphdb.factory.GraphDatabaseFactory;
import org.neo4j.*;
public class Neo4jbaseTest {

    public static void main(String[] args) {
        String input="F:\\neo4j-community-3.3.0-alpha04\\data\\databases\\graph.db";
        File file=new File(input);          
        GraphDatabaseFactory dbFactory = new GraphDatabaseFactory();
        GraphDatabaseService db= dbFactory.newEmbeddedDatabase(file);
        try (Transaction tx = db.beginTx()) {
            Node javaNode = db.createNode(Tutorials.PHP);
            javaNode.setProperty("TutorialID", "PHP001");
            javaNode.setProperty("Title", "Learn PHP");
            javaNode.setProperty("NoOfChapters", "25");
            javaNode.setProperty("Status", "Completed");                

            Node scalaNode = db.createNode(Tutorials.ASP);
            scalaNode.setProperty("TutorialID", "ASP001");
            scalaNode.setProperty("Title", "Learn ASP");
            scalaNode.setProperty("NoOfChapters", "20");
            scalaNode.setProperty("Status", "Completed");

            Relationship relationship = javaNode.createRelationshipTo
            (scalaNode,TutorialRelationships.JVM_LANGIAGES);
            relationship.setProperty("Id","1234");
            relationship.setProperty("OOPS","YES");
            relationship.setProperty("FP","YES");

            tx.success();
        }
           System.out.println("Done successfully");
    }       
    }

亲测通过。但是这中方法也有个缺点就是,Java在对接数据库时,数据库服务器不能启动,只能在关闭状态才能使用。更好的方法还在探索。会持续更新!

参考: java用jdbc连接neo4j

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值