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

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")
posted @   ProsperousEnding  阅读(173)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
  1. 1 原来你也在这里 周笔畅
  2. 2 世间美好与你环环相扣 柏松
  3. 3 起风了 吴青峰
  4. 4 极恶都市 夏日入侵企划
  5. 5 所念皆星河 CMJ
  6. 6 所念皆星河-歌词版 房东的猫
  7. 7 卡农-钢琴版 dylanf
  8. 8 The truth that you leave Pianoboy高至豪
  9. 9 虹之间 米叔啊
虹之间 - 米叔啊
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

编曲:高佳

制作人:陈美威

和声编写:金贵晟

和声:金贵晟

配唱:陈美威

配唱协力:徐威

Vocal录音师:徐威

Vocal录音室:飞行者录音棚

和声录音师:徐威

和声录音室:飞行者录音棚

混音:陈宇轩/Jovi Chen

混音录音室:飞行者录音棚

OP:SAMP (Beijing) Co., Ltd索雅音乐版权代理(北京)有限公司

SP:SAMP (Beijing) Co., Ltd索雅音乐版权代理(北京)有限公司

想借天使的翅膀

抓住云端的彩虹

总在将要触碰时消散

错觉的地久天长

其实是一无所有

童话说雨后会有一道彩虹

却不曾说过它也会转瞬成空

想要把绚烂紧紧握在手中

忽然发现你已不见

站在无尽红尘中

仰望曾有你的苍穹

得到以后转眼又落空

究竟什么是永恒

都无法拥有完整

Oh my love

我看见希望闪耀在虹之间

光芒凝结于你我的那片天

不再追问你为何不能停留

微笑看见爱的浮现

雨后的天空重又出现彩虹

天使的恩惠亲吻着世间万众

不再追问你为何不能停留

放下了执念微笑现在

点击右上角即可分享
微信分享提示