首页 > 系统相关 >Neo4j在linux上的安装与Springboot的集成

Neo4j在linux上的安装与Springboot的集成

时间:2022-08-31 15:47:23浏览次数:84  
标签:dbms return Springboot linux person neo4j Neo4j id name

Neo4j在linux上的安装与Springboot的集成

在linux安装:

前提:安装配置好java环境

1.下载neo4j

官方社区版下载地址:https://neo4j.com/download-center/#releases

或直接使用服务器命令下载:

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")

标签:dbms,return,Springboot,linux,person,neo4j,Neo4j,id,name
From: https://www.cnblogs.com/prosperous-ending-0925/p/16643302.html

相关文章

  • 如何在VMware上安装Linux系统(CentOS 7)
    1.创建新的虚拟机 2.选择安装类型(推荐典型) 3.选择稍后安装操作系统 4.选择操作系统(linux)及版本(CentOS) 5.虚拟机的名称以及虚拟机的存储位置(建议不要有中......
  • 如何在虚拟机上安装Linux系统
    安装Linux系统1第一步新建虚拟机,并选择典型安装  2选择稍后安装操作系统 3选择要安装的系统类型为linux 4选择虚拟机文件的位置5调整硬盘大小6配置完成......
  • 【debug】 Linux中top的使用
    在我们日常的开发中,我们经常需要查看每个线程的cpu使用情况。其实,在linux中,top也是我们查看cpu使用状况的一个好帮手top:先查看每一个进程的使用状况我们可以发现PID:38......
  • Linux添加定时任务
    Linux添加定时任务crontab-e//编辑Linux定时任务配置文件10516*** /home/webSocketStart.sh(脚本)crontab-l//查看当前所有的定时任务......
  • Linux centos7 删除多余内核
    Linux下可能会存在有多个内核的情况,通过某一内核启动会出现无法登录的情况,这时我们就要选择可以正常登录的内核,成功进入系统后,将多余的内核删除。检查系统中的内核 ......
  • Linux下创建swap分区
    1.创建一个swap文件。cd/varsudomkdirswapsudoddif=/dev/zeroof=swapfilebs=1024count=2000000count代表的是大小,我这里是2G。2.把文件转换为swap文件......
  • SpringBoot slighting matters(3)
    pom版本管理<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.0.RELEASE</versio......
  • linux常用的通配符与正则表达式
    我们在很多地方都会用到通配符和正则表达式来实现我们的日常操作,提高我们的工作效率。但是很多新伙伴,往往容易将他们弄混。首先我们需要知道通配符和正则表达式的使用场景......
  • 【Linux】所有的解压命令
    解压.gz解压1:gunzipFileName.gz解压2:gzip-dFileName.gz压缩:gzipFileName.tar.gz和.tgz解压:tarzxvfFileName.tar.gz压缩:tarzcvfFileName.tar.gzDirName......
  • 1 linux系统编程入门-linux gcc 静态库 动态库 Makefile GDB
    标题: linuxgcc静态库动态库MakefileGDB 1.1linux开发环境搭建1linux系统虚拟机云服务器sudoapt-installopenssh-server  2xshellxftp......