Nebula Java¶
Nebula Java 是一款 Java 语言的客户端,可以连接、管理 Nebula Graph 图数据库。
前提条件¶
已安装 Java,版本为 8.0 及以上。
版本对照表¶
Nebula Graph 版本 | Nebula Java 版本 |
---|---|
2.6.2 | 2.6.1 |
2.0.1 | 2.0.0 |
2.0.0 | 2.0.0 |
2.0.0-rc1 | 2.0.0-rc1 |
下载 Nebula Java¶
-
(推荐)如果需要使用指定版本的 Nebula Java,请使用选项
--branch
指定分支。例如使用 v2.6.1发布版本,请执行如下命令:$ git clone --branch v2.6.1 https://github.com/vesoft-inc/nebula-java.git
-
如果需要安装日常开发版本,请执行如下命令下载
master
分支的源码:$ git clone https://github.com/vesoft-inc/nebula-java.git
使用方法¶
Note
建议一个线程使用一个会话,如果多个线程使用同一个会话,会降低效率。
使用 IDEA 等工具导入 Maven 项目,请在pom.xml
中添加如下依赖:
Note
2.0.0-SNAPSHOT
为日常研发版本,可能存在未知问题,建议使用 release 版本号替换2.0.0-SNAPSHOT
。
<dependency>
<groupId>com.vesoft</groupId>
<artifactId>client</artifactId>
<version>2.0.0-SNAPSHOT</version>
</dependency>
如果无法下载日常研发版本的依赖,请在pom.xml
中添加如下内容(release 版本不需要添加):
<repositories>
<repository>
<id>snapshots</id>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
</repository>
</repositories>
如果没有 Maven 管理项目,请手动下载 JAR 包进行安装。
核心代码¶
详细示例请参见 GraphClientExample。
NebulaPool pool = new NebulaPool();
Session session = null;
try {
NebulaPoolConfig nebulaPoolConfig = new NebulaPoolConfig();
nebulaPoolConfig.setMaxConnSize(100);
List<HostAddress> addresses = Arrays.asList(new HostAddress("192.168.xx.1", 9669),
new HostAddress("192.168.xx.2", 9670));
pool.init(addresses, nebulaPoolConfig);
session = pool.getSession("root", "nebula", false);
//create space
String space = "test";
String createSpace = "CREATE SPACE IF NOT EXISTS " + space + " (partition_num=15, replica_factor=1, vid_type=fixed_string(30)); ";
ResultSet resp = session.execute(createSpace);
//create schema
String createSchema = "USE " + space + "; CREATE TAG IF NOT EXISTS person(name string, age int);"
+ "CREATE EDGE IF NOT EXISTS like(likeness double)";
ResultSet resp = session.execute(createSchema);
//insert vertex
String insertVertexes = "INSERT VERTEX person(name, age) VALUES " + "'Bob':('Bob', 10), "
+ "'Lily':('Lily', 9), " + "'Tom':('Tom', 10), " + "'Jerry':('Jerry', 13), "
+ "'John':('John', 11);";
ResultSet resp = session.execute(insertVertexes);
// inert edge
String insertEdges = "INSERT EDGE like(likeness) VALUES " + "'Bob'->'Lily':(80.0), "
+ "'Bob'->'Tom':(70.0), " + "'Lily'->'Jerry':(84.0), " + "'Tom'->'Jerry':(68.3), "
+ "'Bob'->'John':(97.2);";
ResultSet resp = session.execute(insertEdges);
// query
String query = "GO FROM \"Bob\" OVER like " + "YIELD properties($$).name, properties($$).age, properties(edge).likeness";
ResultSet resp = session.execute(query);
printResult(resp);
}finally {
if (session != null) {
session.release();
}
pool.close();
}
最后更新:
March 7, 2023