|
友关系
Edge friend2 = jpaGraph.addEdge(null, wangwu, lisi, "friend");
System.out.println("create finish");
}
@Test
public void testQuery() {
//查询全部数据。
queryAll();
queryZhansanFriends();
System.out.println("query finish");
}
private void queryAll() {
Iterable allVertex = jpaGraph.getVertices();
System.out.println("######################query all######################");
for (Vertex vertex : allVertex) {
System.out.print("name:" + vertex.getProperty("name"));
System.out.println(",id:" + vertex.getId());
}
}
private void queryZhansanFriends() {
Vertex zhangsan = jpaGraph.getVertex(1);
System.out.println("######################query zhangsan friends######################");
Iterable zhansanFriends = zhangsan.getVertices(Direction.OUT, "friend");
for (Vertex vertex : zhansanFriends) {
System.out.print("name:" + vertex.getProperty("name"));
System.out.println(",id:" + vertex.getId());
}
}
@Test
public void testDelete() {
Vertex lisi = jpaGraph.getVertex(2);
jpaGraph.removeVertex(lisi);
//删除之后,查询全部。
queryAll();
queryZhansanFriends();
}
}
3,运行结果
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | tinkerpop | +--------------------+ 2 rows in set (0.01 sec) mysql> use tinkerpop Database changed mysql> show tables; +---------------------+ | Tables_in_tinkerpop | +---------------------+ | ENTITY | | INDEX_BASE | +---------------------+ 2 rows in set (0.00 sec) mysql> select * from ENTITY; +---------------+----+---------+---------+---------+-----------------+--------+------------+-------------------+-------------------+ | DTYPE | id | REMOVED | VERSION | KEYNAME | valueData | LABEL | element_id | incomingVertex_id | outgoingVertex_id | +---------------+----+---------+---------+---------+-----------------+--------+------------+-------------------+-------------------+ | BpJpaVertex | 1 | | 0 | NULL | NULL | NULL | NULL | NULL | NULL | | BpJpaVertex | 2 | | 0 | NULL | NULL | NULL | NULL | NULL | NULL | | BpJpaVertex | 3 | | 0 | NULL | NULL | NULL | NULL | NULL | NULL | | BpJpaEdge | 4 | | 1 | NULL | NULL | friend | NULL | 2 | 1 | | BpJpaEdge | 5 | | 1 | NULL | NULL | friend | NULL | 2 | 3 | | BpJpaProperty | 6 | | 0 | name | t lisi | NULL | 2 | NULL | NULL | | BpJpaProperty | 7 | | 0 | name | t wangwu | NULL | 3 | NULL | NULL | | BpJpaProperty | 8 | | 0 | name | tzhangsan | NULL | 1 | NULL | NULL | +---------------+----+---------+---------+---------+-----------------+--------+------------+-------------------+-------------------+ 8 rows in set (0.00 sec) mysql> select * from INDEX_BASE; Empty set (0.00 sec)
其中entry数据表结构:其中valueData是blob格式,id是自增的。 数据库分为3类,BpJpaVertex,BpJpaEdge,BpJpaProperty,分别是图对象,图关系,图的属性,但是这个存储到了一张表里面,感觉不科学啊,数据量会比较大呢。
CREATE TABLE `ENTITY` ( `DTYPE` varchar(31) NOT NULL, `id` bigint(20) NOT NULL AUTO_INCREMENT, `REMOVED` bit(1) DEFAULT NULL, `VERSION` bigint(20) DEFAULT NULL, `KEYNAME` varchar(255) DEFAULT NULL, `valueData` tinyblob, `LABEL` varchar(255) DEFAULT NULL, `element_id` bigint(20) DEFAULT NULL, `incomingVertex_id` bigint(20) DEFAULT NULL, `outgoingVertex_id` bigint(20) DEFAULT NULL, PRIMARY KEY (`id`), KEY `UK_7hyan3asmdvrxrlywl7v0lj6e` (`REMOVED`), KEY `UK_ejspyse8mcceolr4vps96aohp` (`KEYNAME`), KEY `FK_wb8dqej10hriw3o6m72yj9p` (`element_id`), KEY `FK_ay9plo3t1cprfwdwjvp6fdwi |