最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Java操作Neo4j數(shù)據(jù)庫的實現(xiàn)步驟

 更新時間:2025年09月07日 09:46:23   作者:南瓜呱呱  
本文主要介紹了Java項目連接到neo4j數(shù)據(jù)庫,通過javaAPI實現(xiàn)了對neo4數(shù)據(jù)庫的一系列操作并通過學(xué)習(xí)創(chuàng)建節(jié)點,節(jié)點之間的關(guān)系并進(jìn)行查詢操作和對節(jié)點的增刪操作,感興趣的可以了解一下

一、在windows平臺上部署Neo4j數(shù)據(jù)庫

首先要下載按照neo4j的軟件包,因為neo4j的版本只有3.5版本和jdk1.8兼容,而neo4j 4.0版本需要jdk11版本才能成功運(yùn)行

neo4j 3.5版本下載鏈接

安裝好后到下載好的目錄下

bin下面:執(zhí)行

neo4j.bat console

此時已成功啟動,在瀏覽器搜索框輸入:http://localhost:7474/

即可成功進(jìn)入,第一次進(jìn)入用戶名和密碼均為neo4j,首次登錄后再輸入自己新設(shè)的密碼

二、通過Neo4j的Java API編程,實現(xiàn)一系列操作

首先第一步當(dāng)然還是 -- 創(chuàng)建Maven項目

項目pom.xml文件內(nèi)容如下,直接復(fù)制后重新加載即可:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                             http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.example</groupId>
  <artifactId>neo4j-3.5-demo</artifactId>
  <version>1.0-SNAPSHOT</version>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <neo4j.java.driver.version>1.7.5</neo4j.java.driver.version>
  </properties>

  <dependencies>
    <!-- Neo4j 3.5.x 官方驅(qū)動 -->
    <dependency>
      <groupId>org.neo4j.driver</groupId>
      <artifactId>neo4j-java-driver</artifactId>
      <version>${neo4j.java.driver.version}</version>
    </dependency>

    <!-- 日志依賴(Neo4j驅(qū)動需要) -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.30</version>
    </dependency>
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>1.2.3</version>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

接下來就是具體實現(xiàn)步驟:

(1)創(chuàng)建三個人物節(jié)點——人物名自取。

        //創(chuàng)建人物節(jié)點
        session.run("create(WR:Person{name:'WuRui'})");
        session.run("create(NC:Person{name:'xx'})");
        session.run("create(YU:Person{name:'cc'})");

(2)創(chuàng)建兩個地區(qū)節(jié)點----地名自取。

        //創(chuàng)建地區(qū)節(jié)點
        session.run("create(HN:Location{name:'HuaiNan'})");
        session.run("create(AQ:Location{name:'AnQing'})");

(3)創(chuàng)建節(jié)點之間的關(guān)系:人與人之間的關(guān)系,人與地區(qū)之間的關(guān)系。

     (此處也可以在創(chuàng)建節(jié)點的時候就創(chuàng)建好關(guān)系)

        //創(chuàng)建關(guān)系
        session.run("match(WR:Person{name:'WuRui'}),(NC:Person{name:'xx'})"+
                "create(WR)-[:friend]->(NC)");
        session.run("match(WR:Person{name:'WuRui'}),(YU:Person{name:'cc'})"+
                "create(WR)-[:friend]->(YU)");
        //創(chuàng)建人與地區(qū)關(guān)系
        session.run("match(WR:Person{name:'WuRui'}),(AQ:Location{name:'AnQing'})"
        + "create(WR)-[:brith]->(AQ)");
        session.run("match(NC:Person{name:'xx'}),(HN:Location{name:'HuaiNan'})"
        + "create(NC)-[:brith]->(HN)");

刷新瀏覽器,效果如圖:

(4)查詢所有在淮南(地名可以隨便寫)出生的人物。

    //查詢所有在淮南出生的人物
public void qhuai() {
    Q("match(p:Person)-[:brith]->(l:Location{name:'HuaiNan'}) " +
            "return p.name AS name");
}

(5)查詢所有有關(guān)系的節(jié)點。

    //查詢所有有關(guān)系的節(jié)點
public void qnodes() {
    Q("match (n)--() return distinct n");
}

(6)查詢所有對外有關(guān)系的節(jié)點以及關(guān)系類型。

public void qr() {
    Q("match (n)-[r]->() return n.name as node,type(r) as type");
}

(7)增加一個人物節(jié)點的年齡屬性,接著刪除該屬性。

    //增加并刪除年齡屬性
public void jiaage() {
      session.run("match(p:Person {name:'WuRui'}) " +
              "set p.age = 21");
}
public void jianage() {
    // 刪除年齡
    session.run("match(p:Person {name:'WuRui'}) " +
            "remove p.age");
}

(8)刪除圖中的節(jié)點(方法不限)。

    //刪除所有節(jié)點和關(guān)系
public void deleteAll() {
        Q("match (n) optional match (n)-[r]-() delete n,r");
    }

運(yùn)行總代碼:

package com.wurui.neo4j;
import org.neo4j.driver.v1.*;

public class Test_neo4j {
    private static Session session;
    private static Driver driver;
    static {
        driver = GraphDatabase.driver("bolt://localhost:7687",
                AuthTokens.basic("neo4j", "wr158158"));
        session = driver.session();
}
// 通用查詢方法
public void Q(String c) {
    StatementResult result = session.run(c);
    System.out.println("\n執(zhí)行結(jié)果:" + c);
    while (result.hasNext()) {
        System.out.println(result.next());
    }
}

public void see() { // 查看數(shù)據(jù)庫neo4j
    StatementResult result = session.run("match (n) return n");
    while (result.hasNext()) {
        Record record = result.next();
        System.out.println(record);
    }
}
public void create() {
        //創(chuàng)建人物節(jié)點
        session.run("create(WR:Person{name:'WuRui'})");
        session.run("create(NC:Person{name:'xx'})");
        session.run("create(YU:Person{name:'cc'})");
        //創(chuàng)建地區(qū)節(jié)點
        session.run("create(HN:Location{name:'HuaiNan'})");
        session.run("create(AQ:Location{name:'AnQing'})");
        //創(chuàng)建關(guān)系
        session.run("match(WR:Person{name:'WuRui'}),(NC:Person{name:'xx'})"+
                "create(WR)-[:friend]->(NC)");
        session.run("match(WR:Person{name:'WuRui'}),(YU:Person{name:'cc'})"+
                "create(WR)-[:friend]->(YU)");
        //創(chuàng)建人與地區(qū)關(guān)系
        session.run("match(WR:Person{name:'WuRui'}),(AQ:Location{name:'AnQing'})"
        + "create(WR)-[:brith]->(AQ)");
        session.run("match(NC:Person{name:'xx'}),(HN:Location{name:'HuaiNan'})"
        + "create(NC)-[:brith]->(HN)");
}
    //查詢所有在淮南出生的人物
public void qhuai() {
    Q("match(p:Person)-[:brith]->(l:Location{name:'HuaiNan'}) " +
            "return p.name AS name");
}
    //查詢所有有關(guān)系的節(jié)點
public void qnodes() {
    Q("match (n)--() return distinct n");
}
    //查詢所有有對外關(guān)系的節(jié)點及關(guān)系類型
public void qr() {
    Q("match (n)-[r]->() return n.name as node,type(r) as type");
}

    //增加并刪除年齡屬性
public void jiaage() {
      session.run("match(p:Person {name:'WuRui'}) " +
              "set p.age = 21");
}
public void jianage() {
    // 刪除年齡
    session.run("match(p:Person {name:'WuRui'}) " +
            "remove p.age");
}
    //刪除所有節(jié)點和關(guān)系
public void deleteAll() {
        Q("match (n) optional match (n)-[r]-() delete n,r");
    }

public static void main(String[] args){
    Test_neo4j test = new Test_neo4j();
    test.create();
    test.qhuai();
    test.qnodes();
    test.jiaage();
    test.jianage();
    test.deleteAll();
    test.qr();
    test.see();
    driver.close();
}}

小結(jié)

通過本次實驗,我學(xué)會通過利用Java項目連接到neo4j數(shù)據(jù)庫,通過javaAPI實現(xiàn)了對neo4數(shù)據(jù)庫的一系列操作。通過學(xué)習(xí)創(chuàng)建節(jié)點,節(jié)點之間的關(guān)系并進(jìn)行查詢操作和對節(jié)點的增刪操作,加深了我對neo4j數(shù)據(jù)庫操作命令的理解,也提高了Java編程能力和neo4j數(shù)據(jù)庫的應(yīng)用技能。

到此這篇關(guān)于使用Java操作Neo4j數(shù)據(jù)庫的實現(xiàn)步驟的文章就介紹到這了,更多相關(guān)Java操作Neo4內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MyBatis中的@SelectProvider注解源碼分析

    MyBatis中的@SelectProvider注解源碼分析

    這篇文章主要介紹了MyBatis中的@SelectProvider注解源碼分析,@SelectProvider功能就是用來單獨寫一個class類與方法,用來提供一些xml或者注解中不好寫的sql,今天就來說下這個注解的具體用法與源碼,需要的朋友可以參考下
    2024-01-01
  • JAVA實現(xiàn)讀取txt文件內(nèi)容的方法

    JAVA實現(xiàn)讀取txt文件內(nèi)容的方法

    本篇文章主要介紹了JAVA實現(xiàn)讀取txt文件內(nèi)容的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • 淺談Java變量賦值運(yùn)算符及相關(guān)實例

    淺談Java變量賦值運(yùn)算符及相關(guān)實例

    這篇文章主要介紹了Java賦值運(yùn)算符的一些知識,需要的朋友可以參考下。
    2017-09-09
  • Springboot項目打war包docker包找不到resource下靜態(tài)資源的解決方案

    Springboot項目打war包docker包找不到resource下靜態(tài)資源的解決方案

    今天小編就為大家分享一篇關(guān)于Springboot項目打war包docker包找不到resource下靜態(tài)資源的解決方案,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • Spring?refresh()源碼解析

    Spring?refresh()源碼解析

    這篇文章主要為大家介紹了Spring?refresh()源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • javax.net.ssl.SSLHandshakeException:異常原因及解決方案

    javax.net.ssl.SSLHandshakeException:異常原因及解決方案

    javax.net.ssl.SSLHandshakeException是一個SSL握手異常,通常在建立SSL連接時發(fā)生,這篇文章主要介紹了javax.net.ssl.SSLHandshakeException:異常原因及解決方案,需要的朋友可以參考下
    2025-06-06
  • Junit寫法及與spring整合過程詳解

    Junit寫法及與spring整合過程詳解

    這篇文章主要介紹了Junit寫法及與spring整合過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • 關(guān)于idea2022.2?閃退的問題

    關(guān)于idea2022.2?閃退的問題

    最近更新了idea2022.2版本,這是一個比較大的軟件版本更迭,下面小編給大家介紹下idea2022.2?閃退的問題及解決方法,需要的朋友可以參考下
    2022-08-08
  • Mybatis使用注解實現(xiàn)復(fù)雜動態(tài)SQL的方法詳解

    Mybatis使用注解實現(xiàn)復(fù)雜動態(tài)SQL的方法詳解

    當(dāng)使用 MyBatis 注解方式執(zhí)行復(fù)雜 SQL 時,你可以使用 @Select、@Update、@Insert、@Delete 注解直接在接口方法上編寫 SQL,本文給大家介紹了Mybatis如何使用注解實現(xiàn)復(fù)雜動態(tài)SQL,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下
    2023-12-12
  • java時間段查詢將00:00:00更換成23:59:59

    java時間段查詢將00:00:00更換成23:59:59

    本文主要介紹了java時間段查詢將00:00:00更換成23:59:59,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01

最新評論

西城区| 东台市| 临漳县| 宜君县| 昂仁县| 乐安县| 曲周县| 崇仁县| 大新县| 天峻县| 安国市| 安阳市| 贺州市| 丹凤县| 海安县| 泰和县| 正阳县| 金阳县| 高陵县| 类乌齐县| 南宫市| 天津市| 昌图县| 大石桥市| 定远县| 浦江县| 阳城县| 微博| 临漳县| 岳普湖县| 鄱阳县| 双鸭山市| 新河县| 思茅市| 益阳市| 南昌县| 温州市| 新平| 海口市| 石城县| 阿合奇县|