使用 JDBC 连接 Neo4j(头歌)

文章目录

  • 第1关:连接 Neo4j (JDBC)
    • 任务描述
    • 相关知识
      • 完成 JDBC 环境设置
      • 连接 Neo4j 对数据进行查询
    • 编程要求
    • 测试说明
    • 答案
      • 测试前准备
      • 代码文件

第1关:连接 Neo4j (JDBC)

任务描述

本关任务:使用 JDBC 进行 Neo4j 数据库查询。

相关知识

为了完成本关任务,你需要掌握:

  1. 完成 JDBC 环境设置;
  2. 连接 Neo4j 对数据进行查询。

完成 JDBC 环境设置

需要准备的 jar 包有: Neo4j-2.0.1-SNAPSHOT Version; 还有一个是 neo4j 的 lib 文件夹下的 neo4j-kernel-*.jar(* 号为版本号);

将这两个 jar 包导入到所需要的项目中就可以了。

img

jar 包

注意: 这些 jar 包在本实训中已经为大家准备好了,所以大家不用去再添加 jar 包。

连接 Neo4j 对数据进行查询

需要导入的包为:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
  • 使用 JDBC 驱动连接到 Neo4j :

    Connection con = DriverManager.getConnection("jdbc:neo4j://localhost:7474/","usrname","password");
    

后面的 usernamepassword 需要修改为你的 Neo4j 的用户名和密码。

注意: 实训中的 Neo4j 用户名和密码为:neo4j123456

  • 创建 Statement 进行 CQL 操作:

创建 Statement

Statement stmt = con.createStatement()
  • 使用 stmt 进行增删改查操作:主要使用三个方法进行 executeQuery(查) 和 execute(增、删)、executeUpdate(改); executeQuery

源码解释: ResultSet executeQuery(String sql) throws SQLException;: 主要用于查询数据,需要写入查询语句,进行查询。并且返回值为 ResultSet 结果集,获取数据需要进行循环获取。使用 while 结合 ResultSet.next()使用,使用 getString(String 字段)获取查询的字段数据。 并且需要抛出异常。

// 获取结果集
ResultSet rs = stmt.executeQuery("MATCH (n:Person) RETURN n.name");
// 循环获取数据
while(rs.next()) {
    System.out.println(rs.getString("n.name"));
}

img

查询结果

红色部分为日志,黑色部分为查询出来的结果集。

boolean execute(String sql) throws SQLException;

可以进行创建和删除节点、关系,返回的为布尔类型的数据,返回 true 表示操作成功,返回 false 表示操作失败。 并且需要抛出异常。 创建节点:

String insertSql = "create (:test {name:'test_2'})";
stmt.execute(insertSql);

img

创建代码

img

创建成功

删除只需要将 Cql 修改为删除语句即可:match (n:test) delete n

int executeUpdate(String sql) throws SQLException;

修改语句为:match (n:test) where n.name="test_2" set n.name="test_1"; 并且需要抛出异常。

使用方法与删除基本一样。

编程要求

根据提示,在右侧编辑器补充代码,查询 movies 数据中,Person 节点中按 name 升序后的,前五个数据的 bornname 两个字段的数据。

注意: 导入 movies数据直接在 Neo4j 界面中输入::play movies,按 Enter 后。会出现一个向导界面,在第二个页面点击一个小播放键即可载入数据。

img

操作流程

测试说明

平台会对你编写的代码进行测试:

测试输入:; 预期输出:(头歌上给出的预期输出是按照出生年升序的,实际如下,应该是按照姓名升序的)

出生年:1961,姓名:Aaron Sorkin
出生年:1940,姓名:Al Pacino
出生年:null,姓名:Angela Scope
出生年:1960,姓名:Annabella Sciorra
出生年:1962,姓名:Anthony Edwards
Unexpected token END_ARRAY
errors-next-token = FIELD_NAME
null

答案

测试前准备

# 更新配置文件
source /etc/profile

# 启动 Neo4j
/opt/neo4j-community-3.5.35/bin/neo4j start

# 注意
进入 Neo4j 界面,输入:':play movies',按 Enter 后。会出现一个向导界面,在第二个页面点击一个小播放键即可载入数据。

代码文件

package test_neo4j.neo4j.java.examples;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.neo4j.jdbc.Driver;


//Connect

public class JDBCNeo4j {

	public static void main(String[] args) throws SQLException, ClassNotFoundException {
		//**************Begin************************* 

        // 使用 JDBC 连接 Neo4j
		Connection con = DriverManager.getConnection("jdbc:neo4j://localhost:7474/","neo4j","123456");
        
		// 创建连接
        Statement stmt = con.createStatement();

        // 查询数据
		ResultSet rs = stmt.executeQuery("MATCH (n:Person) RETURN n.born, n.name order by n.name limit 5");
        
        // 输出数据
		while(rs.next()) {
       		System.out.println("出生年:" + rs.getString("n.born") + ",姓名:" + rs.getString("n.name"));
       	}
		
        //**************End************************* 
	}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/206525.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

分布式仿真SNN的思考

我之前实现的仿真完全基于如下图设计的 将整体的网络构成见一个邻接表,突触和神经元作为类分别存储,所以当一个神经元发射脉冲时,很容易的将脉冲传输到突触指向的后神经元。但是在分布式方丈中,由多个进程仿真整体的网络&#xff…

浅谈智能配电房电力运维平台的开发与应用

安科瑞 华楠 摘 要:近年来,我国对电能的需求不断增加,智能电网建设越来越多。为实现对智能配电房设备运行状态的实时监测、态势觉察和态势可视化集中显示,基于智能配电房传感器和配电自动化站所终端单元(DTU&#xf…

vue3 + mark.js | 实现文字标注功能

页面效果 具体实现 新增 1、监听鼠标抬起事件,通过window.getSelection()方法获取鼠标用户选择的文本范围或光标的当前位置。2、通过 选中的文字长度是否大于0或window.getSelection().isCollapsed (返回一个布尔值用于描述选区的起始点和终止点是否位于一个位置&…

STM32之定时器

目录 1、定时器介绍 1.定时器工作原理 2.定时器的分类 3.通用定时器主要功能介绍 4.定时器计数模式 5.定时器时钟源 6.定时器溢出时间计算公式 2、定时器中断的实验 codeMX的配置 代码编写 1.使用到的HAL库函数 1.中断回调函数需要我们重写 2. 在中断模式下启动TIM…

Echarts 设置数据条颜色 宽度

设置数据条颜色(推荐) let yData [{value: 500,time: 2012-11-12,itemStyle: //设置数据条颜色{normal: { color: red }}},{value: 454,time: 2020-5-17},{value: 544,time: 2022-1-22},{value: 877,time: 2013-1-30}, {value: 877,time: 2012-11-12}]…

css 字体倾斜

css 字体倾斜 //左右倾斜 transform: skew(40deg, 0deg);//上下倾斜 transform: skew(0deg, 16deg);

SNAT / DNAT 自定义链

目录 linux 系统本身是没有转发功能,只有路由发送数据 NAT NAT的实现分为两类 SNAT SNAT 应用环境 SNAT 原理 SNAT 转换前提条件 例图参考 开启 SNAT 命令 临时开启 永久开启 修改 iptables 网卡 DNAT DNAT 应用环境 DNAT 原理 DNAT 转换前提条件 …

最新Midjourney绘画提示词Prompt

最新Midjourney绘画提示词Prompt 一、AI绘画工具 SparkAi【无需魔法使用】: SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧!本系统使用NestjsVueTypescript框架技术&am…

java_springboot企业人事考勤请假管理信息系统rsglxx+jsp

(1)熟练掌握Java开发的原理和方法 (2)熟练学习掌握SSM框架 (3)熟悉软件开发的流程 (4)了解中内外互联网中所主流的技术 (5)深层次的了解计算机学科领域的知识…

深入了解Java8新特性-日期时间API之ChronoUnit、ChronoField

阅读建议 嗨,伙计!刷到这篇文章咱们就是有缘人,在阅读这篇文章前我有一些建议: 本篇文章大概3000多字,预计阅读时间长需要5分钟。本篇文章的实战性、理论性较强,是一篇质量分数较高的技术干货文章&#x…

基于AT89C51单片机的秒表设计

1.设计任务 利用单片机AT89C51设计秒表,设计计时长度为9:59:59,超过该长度,报警。创新:设置重启;暂停;清零等按钮。最后10s时播放音乐提示。 本设计是采用AT89C51单片机为中心,利用其…

Java arthas分析接口性能

一、环境准备 1、arthas文档: 简介 | arthas 2、下载arthas-boot.jar https://arthas.aliyun.com/arthas-boot.jar 二、启动arthas java -jar arthas-boot.jar 输入对应pid,进入对应服务 三、排查 1、执行命令: trac 类路径 方法名 tr…

万宾科技监测设备,可燃气体监测仪特点一览

万宾科技的监测设备种类繁多,包括可燃气体监测仪、管网水位监测仪、内涝积水监测仪等。其中可燃气体监测仪是万宾科技的核心产品之一,用于监测环境中可燃气体的浓度,适用于对甲烷气体浓度进行实时监测,应用于燃气管网、排水管网、…

【快速见刊|投稿优惠】2024年机电一体与自动化技术国际学术会议(IACMAT 2024)

2024年机电一体与自动化技术国际学术会议(IACMAT 2024) 2024 International Academic Conference on Mechatronics and Automation Technology(IACMAT 2024) 一【会议简介】 2024年机电一体与自动化技术国际学术会议(IACMAT 2024)即将召开,它以“机电一体&#xff0…

filebrat+elk+kafka实现远程收集日志

20.0.0.15 kafka1 20.0.0.30 kafka2 20.0.0.40 kafka3 20.0.0.10 logstashkibana 20.0.0.20 elasticsearch 20.0.0.60 elasticsearch 注意---一个input,output要有一个 filebeat.intput Nginx----kafka.conf httpd.conf 两边同时启动 时间同步

计算机软件的分类

以功能进行分类,计算机软件通常可以分为系统软件和应用软件两大类。 系统软件:系统软件是计算机运行和管理的基本软件,包括操作系统、驱动程序、系统工具和服务程序等。操作系统是系统软件的核心,负责管理计算机的硬件资源、提供用…

模拟算法【3】——1419.数青蛙

文章目录 🍥1. 题目🥮2. 算法原理🍡3. 代码实现 🍥1. 题目 题目链接:1419. 数青蛙 - 力扣(LeetCode) 给你一个字符串 croakOfFrogs,它表示不同青蛙发出的蛙鸣声(字符串 &…

EG20网口远程下载程序使用案例

EG20网口远程下载程序使用案例 前言:本文档主要说明了使用蓝蜂虚拟网络工具通过EG20网关的网口(LAN口)远程给PLC下载程序的步骤及其注意事项。使用蓝蜂虚拟网络工具,不仅支持程序的远程下载,同样支持程序的远程上传与…

Windows 基于 VMware 虚拟机安装银河麒麟高级服务器操作系统

前言 抱着学习的态度研究一下麒麟系统的安装 银河麒麟(KylinOS)原是在“863计划”和国家核高基科技重大专项支持下,国防科技大学研发的操作系统,后由国防科技大学将品牌授权给天津麒麟,后者在2019年与中标软件合并为…

代码随想录刷题题Day2

刷题的第二天,希望自己能够不断坚持下去,迎来蜕变。😀😀😀 刷题语言:C / Python Day2 任务 977.有序数组的平方 209.长度最小的子数组 59.螺旋矩阵 II 1 有序数组的平方(重点:双指针…