tinkerpop(2) 使用java调用tinkerpop,存储到derby数据库

1,关于tinkerpop

本文原文连接: 转载请注明出处!

之前体验了下tinkerpop的console服务。 存储数据,然后进行查询数据。 之前写的文章:

2,关于blueprints

Blueprints是一组针对属性图数据模型的接口、实现、测试套件,有些类似于JDBC,不同之处在于Blueprints是针对图形数据库的。Blueprints提供了一组通用的接口,允许开发者在他们的图形数据库后端即插即用。

这个图表示了blueprints的位置,在最底层,决定数据存储。

wiki参考: https://github.com/tinkerpop/blueprints/wiki

其中blueprints支持的存储: TinkerGraph (TinkerGraph) Neo4j Implementation (Neo4jGraph) Neo4jHA Implementation (Neo4jHaGraph) Neo4jBatch Implementation (Neo4jBatchGraph) Sail Implementation (SailGraph) Sparksee Implementation (SparkseeGraph) Rexster Implementation (RexsterGraph) Accumulo Implementation (AccumuloGraph – 3rd party – implements Blueprints 2.4.0) ArangoDB Implementation (ArangoDBGraph – 3rd party – implements Blueprints 2.3.0) Bitsy (BitsyGraph – 3rd party – implements Blueprints 2.4.0) Bigdata (BigdataGraph – 3rd party – implements Blueprints 2.5.0) FluxGraph – Datomic Implementation (FluxGraph – 3rd party – implements Blueprints 2.1.0) FoundationDB Implementation (FoundationDBGraph – 3rd party – implements Blueprints 2.4.0) InfiniteGraph Implementation (IGGraph – 3rd party – implements Blueprints 2.1.0) JPA Implementation (JpaGraph – 3rd party – implements Blueprints 2.5.0) MongoDB Implementation (MongoDBGraph – 3rd party – implements Blueprints 2.3.0) Oracle NoSQL Implementation (KVGraph – 3rd party – implements Blueprints 2.1.0) OrientDB Implementation (OrientGraph – 3rd party – implements Blueprints 2.4.0) SQL/JDBC Implementation – 3rd party – implements Blueprints 2.4.0) Titan Implementation (TitanGraph – 3rd party – implements Blueprints 2.3.0)

3,配置依赖包

maven依赖:

==>tinkerpop-demo>1.0</version><!–https://maven.apache.org/guides/mini/guide-multiple-repositories.html增加wingnest-repo repo。–>>wingnest-repo>>>org.apache.tinkerpop>3.0.0.M9-incubating>>3.0.0.M9-incubating>>2.6.0>>2.5.0_01>>1.7.5>>slf4j-simple>test>>10.11.1.1>>derbytools>test>>4.12>>4.3.10.Final>>4.3.10.Final>>10.11.1.1>>src/main/java>>true>>>2.5.1>1.7>UTF-8>>maven-resources-plugin>></project>

测试代码:

package import import import import import import import orgimport orgimport orgimport javaimport javaimport java/** * */public class TinkerPopDemo {private JpaGraph jpaGraph = null;@Beforepublic void setUp() {//初始化jpa。保存到数据库中。使用hibernate 自动创建表结构。//如果要使用mysql,,这里修改属性。Map<String, Object> props = new HashMap<String, Object>();props.put(“javax.persistence.jdbc.url”, String.format(“jdbc:derby:db/HibernateUnit_test_perf;create=true”));jpaGraph = new JpaGraph(“HibernateUnit”, props);}@Afterpublic void tearDown() throws Exception {//关闭jpaGraph.shutdown();}@Testpublic void testCreate() {//创建张三数据Vertex zhangsan = jpaGraph.addVertex(null);zhangsan.setProperty(“name”, “zhangsan”);System.out.println(“zhangsan:” + zhangsan.getId());//创建李四数据Vertex lisi = jpaGraph.addVertex(null);lisi.setProperty(“name”, “lisi”);System.out.println(“lisi:” + lisi.getId());//创建王五数据Vertex wangwu = jpaGraph.addVertex(null);wangwu.setProperty(“name”, “wangwu”);System.out.println(“wangwu:” + wangwu.getId());//设置李四和王五朋友关系,friend是连接的名字,可以随意取。Edge friend1 = jpaGraph.addEdge(null, zhangsan, lisi, “friend”);//设置王五和李四朋友关系Edge friend2 = jpaGraph.addEdge(null, wangwu, lisi, “friend”);System.out.println(“create finish”);}@Testpublic void testQuery() {//查询全部数据。queryAll();queryZhansanFriends();System.out.println(“query finish”);}private void queryAll() {Iterable<Vertex> 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<Vertex> zhansanFriends = zhangsan.getVertices(Direction.OUT, “friend”);for (Vertex vertex : zhansanFriends) {System.out.print(“name:” + vertex.getProperty(“name”));System.out.println(“,id:” + vertex.getId());}}@Testpublic void testDelete() {Vertex lisi = jpaGraph.getVertex(2);jpaGraph.removeVertex(lisi);//删除之后,查询全部。queryAll();queryZhansanFriends();}}为什么?答:点线杆上贴着”“此处不许小便!”

tinkerpop(2) 使用java调用tinkerpop,存储到derby数据库

相关文章:

你感兴趣的文章:

标签云: