java 连接 neo4j
以往都是使用关系型数据库,实体类和表一一对应,但现在的知识图谱项目要使用到图数据库,不太知道怎么设置实体类,然后就去查java怎么连接neo4j
连接关系型数据库
对于关系型数据库,表与实体类一一对应
连接图数据库
对于图数据库,有两种方法
1、使用框架,可以使用不同的节点类型代表不同的实体类,就是一个本体代表一个实体类,这样可以用到一些注解,可以直接调用一些curd的方法,但是本体确定了实体类就确定了
2、也可以使用HashMap代替实体类实现存取,这样的话就要自己写一下cypher,就是原生写法
1、使用框架,本体对应实体类,Spring-Data-Neo4j
可以使用Spring-Data-Neo4j连接数据库,类似于mybaits的数据库连接工具,下面是它的定义
Spring Data Neo4j 简称SDN,是一个对象-图形映射(OGM)框架,是为了简化开发者的工作而创建的,它的目的是通过处理所有底层工作和从Neo4j读域实体并写回去所必须的映射逻辑来提高效率
OGM类似于关系型数据库的ORM(Object Relation Mapping,对象关系映射),OGM即对象图映射(Object Graph Mapper ,简称OGM ),基于OGM可以将neo4j中的图模型快速转换成java中的对象。
2、不使用框架,用HashMap代替实体类
看到的一个项目,他里面可以自建不同的图谱,但是这里面的每一个图谱代表不同的节点类型,图谱中的本体类型只能用一个property这类的属性代表,可以有以下两种方式,但是都要自己手写cypher语句实现CURD
1、neo4j-java-driver
2、GraphDatabase
3、其他
这里面还分服务器开发和嵌入式开发
上面说的是服务器开发,需要连接一个外部neo4j数据库
还有嵌入式开发,在程序里面下载一个neo4j
<!-- 服务器开发需要的jar包 -->
<!-- 这个比较原生 -->
<dependency>
<groupId>org.neo4j.driver</groupId>
<artifactId>neo4j-java-driver</artifactId>
<version>1.5.0</version>
</dependency>
<!-- 这个是spring集成的框架 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-neo4j</artifactId>
</dependency>
<!-- 嵌入式开发需要的jar包,这个我没用过 -->
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j</artifactId>
<version>3.3.4</version>
</dependency>
参考博客
上面的内容写的不全,基本按照下面的汇总一下,详细的可以看下面的博客
java连接neo4j(使用spring data neo4j)_DOITHu的博客-CSDN博客 ——这个是spring-data-neo4j
爆肝十小时—我终于用Java连上Neo4j数据库 - 知乎 (zhihu.com) ——这个主要是嵌入式开发
Java 操作 Neo4J 就是这么简单!-java neo4j (51cto.com) —— 这个是spring-data-neo4j和GraphDatabase.driver
Java调用Neo4j常用方式_java neo4j_后端平凡的博客-CSDN博客 ——这个是neo4j-java-driver和spring-data-neo4j
Java连接Neo4j的两种方式_学海一乌鸦的博客-CSDN博客 ——这个说明了服务器开发和嵌入式开发
Java连接Neo4j_neo4j-jdbc-driver_孑然一身踽踽而行的博客-CSDN博客 ——这个是neo4j-java-driver和GraphDatabase
KGBuilder ——项目地址