Neo4J的安装配置以及java连接
Neo4j是一个高性能的,NoSQL图形数据库,在一个图中包含两种基本的数据类型:Nodes(节点) 和 Relationships(关系)。Nodes 和 Relationships 包含key/value形式的属性。Nodes通过Relationships所定义的关系相连起来,形成关系型网络结构。
相比其他NoSQL数据库,Neo4j的特点在于可以建立关系,达到数据关联的目的。从某些方面来说,我觉得它甚至可以取代关系型数据库,而且不需要事先定义表结构,字段扩展非常方便。
安装、配置、启动Neo4j
官网下载地址:https://neo4j.com/download-center/#community
1、选择社区版——>选择windows下的zip安装包——>解压
2、保证自己已经安装JDK8
3、以管理员身份启动CMD,切换路径到解压后目录下的bin内,验证neo4j的安装和环境变量配置是否成功:
neo4j.bat console
4、注册neo4j服务:
neo4j install-service
5、开启neo4j服务
neo4j start
关闭 重启:
neo4j stop
neo4j restart
6、输入:http://localhost:7474/browser,访问
默认的初始密码是neo4j,第一次登陆时需要修改密码
java连接
1、SpringBoot JPA连接方式
maven依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-neo4j</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>5.0.8.RELEASE</version>
</dependency>
配置文件:
public class Neo4jConfig {
@Bean
public SessionFactory sessionFactory() {
return new SessionFactory(configuration(), "指定包");
}
@Bean //定义配置信息、连接池等等。。。
public org.neo4j.ogm.config.Configuration configuration() {
org.neo4j.ogm.config.Configuration configuration = new org.neo4j.ogm.config.Configuration.Builder()
.uri("bolt://ip地址:端口") //默认为bolt://localhost:7687
.credentials("账户", "密码") //neo4j默认账户密码为neo4j,neo4j
.build();
return configuration;
}
@Bean
public Neo4jTransactionManager transactionManager() {
return new Neo4jTransactionManager(sessionFactory());
}
}
之后就可以在对应的接口通过JPA命名规则实现方法或是通过@Query自定义cql查询方法
2、服务器式数据库连接
依赖包:
<dependency>
<groupId>org.neo4j.driver</groupId>
<artifactId>neo4j-java-driver</artifactId>
<version>1.5.0</version>
</dependency>
测试代码:
Driver driver = GraphDatabase.driver( "bolt://localhost:7687", AuthTokens.basic( "neo4j", "" ) );
Session session = driver.session();
//添加一个person节点
session.run( "CREATE (a:Person {name: {name}, title: {title}})",
parameters( "name", "NAME1", "title", "TITLE1" ) );
//搜索name为NAME1的person节点
StatementResult result = session.run( "MATCH (a:Person) WHERE a.name = {name} " +
"RETURN a.name AS name, a.title AS title",
parameters( "name", "NAME1" ) );
//遍历输出
while ( result.hasNext() )
{
Record record = result.next();
System.out.println( record.get( "title" ).asString() + " " + record.get( "name" ).asString() );
}
session.close();
driver.close();
3、嵌入式开发
来源:CSDN
作者:Miaojuno
链接:https://blog.csdn.net/weixin_40434548/article/details/103641275