Database OrientDB-存储java应用程序中的数据时出现问题
我试图在OrientDB中存储三元组,作为我正在处理的Java应用程序中的顶点-边-顶点关系。我对使用OrientDB的理解是,我可以使用Tinkerpop API并实例化如下图形:Database OrientDB-存储java应用程序中的数据时出现问题,database,nosql,orientdb,Database,Nosql,Orientdb,我试图在OrientDB中存储三元组,作为我正在处理的Java应用程序中的顶点-边-顶点关系。我对使用OrientDB的理解是,我可以使用Tinkerpop API并实例化如下图形: OrientGraph graph = new OrientGraph("local:/tmp/orient/test_db"); for (Vertex v : graph.getVertices()) { out.println("Vertex: " +v.toString()); } 这就是我实
OrientGraph graph = new OrientGraph("local:/tmp/orient/test_db");
for (Vertex v : graph.getVertices()) {
out.println("Vertex: " +v.toString());
}
这就是我实例化图形所做的全部工作,然后我尝试将顶点与循环中的边连接起来,如下所示:(注意,语句是由subject-relationship-object组成的三元组。)
然后,我循环遍历图的顶点,并将它们打印出来,如下所示:
OrientGraph graph = new OrientGraph("local:/tmp/orient/test_db");
for (Vertex v : graph.getVertices()) {
out.println("Vertex: " +v.toString());
}
它确实打印了很多顶点,但是当我使用server.sh
通过命令行登录服务器时,我看到的只有ORole
的3条记录和OUser
的4条记录。我错过了什么?因为看起来虽然我的java程序运行并完成了,但数据并没有被放入数据库 至少就目前而言,答案似乎不是使用Tinkerpop API,而是直接使用Orient API。这与我在Tinkerpop中所做的相同,但使用的是OrientDB API。这实际上会将我的数据存储到数据库中:
for (Statement s : statements) {
ODocument sNode = db.createVertex();
sNode.field("Subject", s.getSubject().toBELShortForm());
sNode.save();
ODocument oNode = db.createVertex();
if (s.getObject() != null) {
oNode.field("Object", s.getObject().toBELShortForm());
oNode.save();
}
else {
oNode.field("Object", "null");
oNode.save();
}
RelationshipType r = s.getRelationshipType();
ODocument edge = db.createEdge(sNode, oNode);
if (r != null) {
edge.field(r.toString());
edge.save();
}
else {
edge.field("no relationship");
edge.save();
}
}
至少就目前而言,答案似乎不是使用Tinkerpop API,而是直接使用Orient API。这与我在Tinkerpop中所做的相同,但使用的是OrientDB API。这实际上会将我的数据存储到数据库中:
for (Statement s : statements) {
ODocument sNode = db.createVertex();
sNode.field("Subject", s.getSubject().toBELShortForm());
sNode.save();
ODocument oNode = db.createVertex();
if (s.getObject() != null) {
oNode.field("Object", s.getObject().toBELShortForm());
oNode.save();
}
else {
oNode.field("Object", "null");
oNode.save();
}
RelationshipType r = s.getRelationshipType();
ODocument edge = db.createEdge(sNode, oNode);
if (r != null) {
edge.field(r.toString());
edge.save();
}
else {
edge.field("no relationship");
edge.save();
}
}
在服务器的databases目录下创建图形。下面的示例假设OrientDB已安装在“/usr/local/orient”下:
当您启动server.sh时,您会发现该数据库已正确填充
Lvc@在服务器的数据库目录下创建图形。下面的示例假设OrientDB已安装在“/usr/local/orient”下:
当您启动server.sh时,您会发现该数据库已正确填充
Lvc@为什么会被否决?为什么会被否决?