Neo4j在linux上的安装与Springboot的集成
Neo4j在linux上的安装与Springboot的集成
在linux安装:
前提:安装配置好java环境
1.下载neo4j
或直接使用服务器命令下载:
curl -O http://dist.neo4j.org/neo4j-community-3.5.35-unix.tar.gz
解压缩:
tar -axvf neo4j-community-3.5.35-unix.tar.gz
2.修改目录中的conf/neo4j.conf文件
# 修改第22行load csv时l路径,在前面加个#,可从任意路径读取文件
#dbms.directories.import=import
# 修改54行,去掉改行的#,可以远程通过ip访问neo4j数据库
dbms.connectors.default_listen_address=0.0.0.0
#以下三项可不修改
# 修改71行,去掉#,设置http端口为7687
dbms.connector.bolt.listen_address=:7687
# 修改75行,去掉#,设置http端口为7474
dbms.connector.http.listen_address=:7474
# 修改79行,去掉#,设置https端口为7473
dbms.connector.https.listen_address=:7473
# 去掉#,允许从远程url来load csv
dbms.security.allow_csv_import_from_file_urls=true
# 允许使用neo4j-shell
dbms.shell.enabled=true
#去掉#,设置连接neo4j-shell的端口,一般为localhost或者127.0.0.1其他使用https就行
dbms.shell.host=127.0.0.1
#去掉#,设置neo4j-shell端口
dbms.shell.port=1337
# 修改254行,设置neo4j可读可写
dbms.read_only=false执行
3.进入bin目录开启:
- 开启:执行./neo4j start
- 停止:执行./neo4j stop
- 状态:执行./neo4j status
4.访问:
http://ip地址:7474/browser/
注:如果使用云服务器不要忘记开放7474端口和7687端口
第一次登录账号密码:
账号 | neo4j |
---|---|
密码 | neo4j |
Springboot操作neo4j图数据库
1. 导入依赖文件
<!-- neo4j -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-neo4j</artifactId>
<version>2.5.2</version>
</dependency>
2. 配置yml
关闭Neo4j的认证,在目录conf/neo4j.conf`文件里
dbms.security.auth_enabled=false
spring:
neo4j:
uri: bolt://localhost:7687 #bolt端口
authentication:
username: neo4j #账号
password: neo4j #密码
3. 创建实体类
@Node(labels = "person")
@Data
public class PersonNode {
@Id
@GeneratedValue
private Long id;
@Property("name")
private String name;
@Property("sex")
private String sex;
}
@Node表示创建结点,结点为person
4. 创建关系类(可选)
@Data
@NoArgsConstructor
@RelationshipEntity(type = "关系名称")
public class PersonRelation implements Srializable {
@Id
@GeneratedValue
private Long id;
@StartNode
private Person parent;
@EndNode
private Person child;
@Property
private String relation;
public PersonRelation(Person parent, Person child, String relation) {
this.parent = parent;
this.child = child;
this.relation = relation;
}
}
5. 创建Repository
@Repository
public interface PersonRepository extends Neo4jRepository<PersonNode,Long> {
/**
* 获得全部人员节点
* @return
*/
@Query("MATCH (n:person) RETURN n ")
List<PersonNode> getAllPersonNode();
/**
* 分页查询
* @param current
* @param size
* @param name
* @return
*/
@Query("MATCH (n:person) where n.name =~ ('.*'+{2}+'.*') RETURN n ORDER BY n.id DESC SKIP {0} LIMIT {1}")
List<PersonNode> getPersonNodeByName(Integer current, Integer size, String name);
/**
* 模糊查询人名
* @param name
* @return
*/
@Query("MATCH (n:person) where n.name =~ ('.*'+{0}+'.*') RETURN n ")
List<PersonNode> getPersonNodeName(String name);
/**
* 通过id查询
* @param id
* @return
*/
@Query("MATCH (n:person) where id(n)={0} RETURN n")
PersonNode getPersonNodeById(Long id);
/**
*通过id查询某节点的所有子节点
* @param pId
* @return
*/
@Query("Match (p:person) -[*]->(s:person) where id(p)={0} return s")
List<Person> findChildList(Long pId);
/**
*通过name查询某个节点的所有子节点
* @param pId
* @return
*/
@Query("Match (p:person {name:{0}}) -[*]->(s:person) return s")
List<Person> findChildList(String name);
/**
* 查询当前节点的父节点
* @param name
* @return
*/
@Query("Match (p:person) -[*]->(s:person {name:{0}}) return p")
List<Person> findParentList(String name);
}
6. 在启动类上加上:
@EnableNeo4jRepositories(basePackages ="com.code.dao")
@EntityScan(basePackages = "com.code.pojo")
Neo4j在linux上的安装与Springboot的集成的更多相关文章
- jemalloc在linux上从安装到使用
jemalloc在linux上从安装到使用 上次在引导大家安装Redis时提到可能会报错: 发现了redis有用到jemalloc. 首先,jemalloc是干什么的? 我们看看作者自己的介绍: j ...
- 分布式缓存技术redis学习系列(一)——redis简介以及linux上的安装
redis简介 redis是NoSQL(No Only SQL,非关系型数据库)的一种,NoSQL是以Key-Value的形式存储数据.当前主流的分布式缓存技术有redis,memcached,ssd ...
- GIT在Linux上的安装和使用简介
GIT最初是由Linus Benedict Torvalds为了更有效地管理Linux内核开发而创立的分布式版本控制软件,与常用的版本控制工具如CVS.Subversion不同,它不必服务器端软件支持 ...
- 分布式缓存技术redis学习(一)——redis简介以及linux上的安装
redis简介 redis是NoSQL(No Only SQL,非关系型数据库)的一种,NoSQL是以Key-Value的形式存储数据.当前主流的分布式缓存技术有redis,memcached,ssd ...
- 在Linux上怎么安装和配置Apache Samza
samza是一个分布式的流式数据处理框架(streaming processing),它是基于Kafka消息队列来实现类实时的流式数据处理的.(准确的说,samza是通过模块化的形式来使用kafka的 ...
- ODI11G 在Linux上的安装配置
ODI11G 在Linux上的安装配置 OS环境:Red hat Linux x86_64 一.JDK安装 1. 去oracle官网上下载 http://www.oracle.com/technetw ...
- 【JAVAWEB学习笔记】27_Redis:在Linux上的安装、Jedis和常用命令
一.Redis简介 1.关于关系型数据库和nosql数据库 关系型数据库是基于关系表的数据库,最终会将数据持久化到磁盘上,而nosql数据 库是基于特殊的结构,并将数据存储到内存的数据库.从性 ...
- 【数据库】Mean web开发 04-MongoDB在Linux上的安装及遇到的问题
简介 Mean是JavaScript的全栈开发框架.更多介绍 用MongoDB实现持久数据的存储是Mean Web全栈开发中的一部分. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非 ...
- linux上redis安装配置及其防漏洞配置及其攻击方法
Linux上redis安装: 需先在服务器上安装yum(虚拟机可使用挂载的方式安装) 安装配置所需要的环境运行指令: yum -y install gcc 进入解压文件执行make 指令进行编译 执 ...
随机推荐
- Visual Studio Installer下载速度为0处理办法
DNS改为:223.5.5.5即可. 223.5.5.5 下载完成后记得改回来.
- electron-vue 项目启动动态获取配置文件中的后端服务地址
前言 最近的项目迭代中新增一个需求,需要在electron-vue 项目打包之后,启动exe 可执行程序的时候,动态获取配置文件中的 baseUrl 作为服务端的地址.electron 可以使用 no ...
- 六、LVM和从磁盘配额
一.LVM概述 Logical Volume Manager,逻辑卷管理 优点:能够保证在现有数据不变的情况下,动态调整磁盘容量,从而提高磁盘管理的灵活性 /boot分区用于存放引导文件,不能基于LV ...
- Python:27行代码实现将多个Excel表格内容批量汇总合并到一个表格
序言 (https://jq.qq.com/?_wv=1027&k=GmeRhIX0) 老板最近越来越过分了,快下班了发给我几百个表格让我把内容合并到一个表格内去.还好我会Python,分分钟 ...
- docker安装报错failure: repodata/repomd.xml from mirrors.aliyun.com_docker-ce_linux_centos_docker-ce.pro
1.进入 /etc/yum.repos.d 目录下,将所有有关 docker 的 repo 全部删掉 2.重新添加镜像 sudo yum-config-manager --add-repo https ...
- colab解压.tar.gz文件指令
!tar -zxvf flower_photos.tar.gz 成功后如图:
- adb工具
ADB:全称为Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具. 首先,下载ADB工具并安装: 下载:百度就有.下载后是个压缩包,将其拷贝到cm ...
- C语言动态输出等腰三角形
C语言动态输出等腰三角形 题目要求:输入行数 打印出对应行数的等腰三角形,要求使用for循环嵌套. 思路 while语句写外层死循环 用于判断输出的数据: 分析: 最外层for,来控制最外层行数,存储 ...
- gnet: 一个轻量级且高性能的 Go 网络框架 使用笔记
一个偶然的机会接触到了golang,被它的高并发传说所吸引,就开始学这门语言,越学感觉越有意思^_^ 注册了博客园这么多年,第一次写东西,年纪大了,脑子不好使了,就得写下来,记下来,为了自己以后查阅, ...
- 你真的了解JAVA中对象和类、this、super和static关键字吗
作者:小牛呼噜噜 | https://xiaoniuhululu.com 计算机内功.JAVA底层.面试相关资料等更多精彩文章在公众号「小牛呼噜噜 」 目录 Java对象究竟是什么? 创建对象的过程 ...