关于neo4j的嵌入式和驱动包模式该如何选择,还请解惑
看了网上的一些资料和Neo4j权威指南这本书。与图遍历相关的介绍都是基于嵌入式模式下的java Api。但是个人觉得在实际的项目中,嵌入式的模式,代码必须放在数据库所在服务器上,且服务器的启停操作都在代码里,局限性有点大。因此选择了驱动包模式,以jdbc的方式连接neo4j数据库。遇到了一些疑惑:
1.使用驱动包模式开发是否就只能用cypher语句(或者结合apoc)来进行图的遍历。
2.驱动包模式查询结果返回的是一个ResultSet对象,是否需要自己手动创建node,path等实体类
3.关于嵌入式,是不是我的理解有误。感觉局限性太大。如果我要远程操作neo4j数据库,是不是可以通过将neo4j所在服务器上的相关接口发布dubbo服务来实现。
4.实际项目中用到neo4j数据库,嵌入式和驱动包模式究竟该如何选择?
回答一
唯一需要使用嵌入模式(embedded)的情况,是你的应用在图数据库引擎之上实现专门的数据处理功能、并作为一个整体产品运行/销售,例如一个用户权限管理软件使用Neo4j嵌入式数据库作为用户角色和资源的数据存储。嵌入式的数据库是无法被其他外部客户应用访问的。
作为客户端应用,首推Neo4j的官方驱动:Java, Javascript, .Net和Python,它们对查询结果的读取都做了很好地封装。JDBC方式只是为习惯于关系数据库开发的技术人员提供的。客户端应用应该通过bolt协议访问数据库,提交Cypher查询,并处理结果。
请参考Neo4j官方网站上的例子:https://neo4j.com/developer/language-guides/
回答二
1.是的,驱动包开发模式就像 jdbc操作关系数据库,要在程序里发送指令(cyher语句)到neo4j并处理返回的结果
2.驱动包开发模式下 运行cypher指令(create )来创建节点 关系 属性等
3.是的,嵌入式开发模式要在服务器上运行直接操作neo4j数据文件,并且必须先关闭neo4j才行
4.应用级别都是用驱动包开发模式,你的项目就是应用级别的。 嵌入式开发模式一般专业数据处理人员想要自己操作图数据用到
关于neo4j的嵌入式和驱动包模式该如何选择,还请解惑的更多相关文章
- Linux开源模块迁移概述暨交叉编译跨平台移植总结--从《嵌入式Linux驱动模板简洁和工程实践》
本文摘录<嵌入式Linux驱动模板简洁和工程实践>一本书"开发和调试技术". Linux强大的是,有那么多的开源项目可以使用.通常非常需要可以通过寻找相关的源模块被定义 ...
- c3p0、dbcp、tomcat jdbc pool 连接池配置简介及常用数据库的driverClass和驱动包
[-] DBCP连接池配置 dbcp jar包 c3p0连接池配置 c3p0 jar包 jdbc-pool连接池配置 jdbc-pool jar包 常用数据库的driverClass和jdbcUrl ...
- Spring Batch远程分区的本地Jar包模式
1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! Spring相关文章:Springboot-Cloud Spring Batch远程分区对于大量数据的处理非常擅长,它的实现 ...
- 嵌入式Linux驱动开发日记
嵌入式Linux驱动开发日记 主机硬件环境 开发机:虚拟机Ubuntu12.04 内存: 1G 硬盘:80GB 目标板硬件环境 CPU: SP5V210 (开发板:QT210) SDRAM: 512M ...
- 嵌入式linux驱动开发之给linux系统添加温度传感器模块
忙了几天,终于可以让ds18b20在自己的开发板的linux系统上跑了!虽然ds18b20不是什么新鲜玩意,但是想想知己可以给linux系统添加模块了还是有点小鸡冻呢! 虽然说现在硬件的资源非常丰富而 ...
- [Windows驱动]驱动包(Driver Packages)
在windows下安装一个驱动,我们你需要把所有需要的软件打包-称为驱动包.驱动包里包括系统提供的给所有设备类使用的一般安装工具,还包括了设备商提供的设备特定的组件.下面我们就来看看驱动包里具体需要哪 ...
- Win8驱动测试模式
打开驱动测试模式(保存成bat文件,双击执行) bcdedit /set testsigning on pause 执行完成后,看见提示操作成功的提示,之后我们重启一下,再次进入系统,在桌面的右下角会 ...
- mongodb在java驱动包下的操作(转)
推荐几章很有用的文章 java操作参考文档 http://www.cnblogs.com/hoojo/archive/2011/06/02/2068665.html http://blog.csdn. ...
- 使用Maven管理Oracle驱动包
由于Oracle授权问题,Maven3不提供Oracle JDBC driver,为了在Maven项目中应用Oracle JDBC driver,必须手动添加到本地仓库. 手动添加到本地仓库需要本地有 ...
随机推荐
- 深入浅出 Java Concurrency (38): 并发总结 part 2 常见的并发场景[转]
常见的并发场景 线程池 并发最常见用于线程池,显然使用线程池可以有效的提高吞吐量. 最常见.比较复杂一个场景是Web容器的线程池.Web容器使用线程池同步或者异步处理HTTP请求,同时这也可以有效的复 ...
- 2018CCPC吉林赛区 | 部分题解 (HDU6555 HDU6556 HDU6559 HDU6561)
// 杭电上的重现赛:http://acm.hdu.edu.cn/contests/contest_show.php?cid=867 // 杭电6555~6566可交题 A - The Fool 题目 ...
- 在 Node.js 中引入模块:你所需要知道的一切都在这里
本文作者:Jacob Beltran 编译:胡子大哈 翻译原文:http://huziketang.com/blog/posts/detail?postId=58eaf471a58c240ae35bb ...
- PAT甲级——A1095 Cars on Campus
Zhejiang University has 8 campuses and a lot of gates. From each gate we can collect the in/out time ...
- Cocos2d-x发布Android.mk 导入所有cpp
#traverse all the directory and subdirectorydefine walk $(wildcard $(1)) $(foreach e, $(wildcard $(1 ...
- Netty SimpleChannelInboundHandler和ChannelInboundHandler区别
一般用netty来发送和接收数据都会继承SimpleChannelInboundHandler和ChannelInboundHandlerAdapter这两个抽象类,那么这两个到底有什么区别呢? 在客 ...
- JAVA缓存的实现
缓存可分为二大类: 一.通过文件缓存,顾名思义文件缓存是指把数据存储在磁盘上,不管你是以XML格式,序列化文件DAT格式还是其它文件格式: 二.内存缓存,也就是实现一个类中静态Map,对这个Map进行 ...
- 常用的git操作命令
整理来源于廖雪峰的git教程https://www.liaoxuefeng.com git: 分布式版本控制系统 本地有完整的代码库,还有远程代码库 svn: 集中式版本控制系统 必须联网时才可提交 ...
- Ajax.NET-Professional
https://github.com/michaelschwarz/Ajax.NET-Professional Ajax.NET Professional Ajax.NET Professional ...
- HttpComponents了解
原文地址:http://blog.csdn.net/jdluojing/article/details/7300428 1 简介 超文本传输协议(http)是目前互联网上极其普遍的传输协议,它为构建功 ...