我对neo4j很陌生,我想创建一个应用程序。
在远程服务器模式下,似乎只有RESTAPI可以用于连接neo4j。所以我决定使用嵌入式数据库,因为我想使用neo4j提供的JAVA API。
本教程中有一个创建连接的示例:
private static final String DB_PATH = "C:/Users/Hao/Documents/Neo4j/TGI_test_backup";
public static void main( String[] args ) throws IOException
{
FileUtils.deleteRecursively( new File( DB_PATH ) );
GraphDatabaseService database = new GraphDatabaseFactory().newEmbeddedDatabase( DB_PATH );
GraphDatabaseService database = new GraphDatabaseFactory().newEmbeddedDatabase( DB_PATH );
TraversalExample example = new TraversalExample( database );
Node joe = example.createData();
example.run( joe );
}
public TraversalExample( GraphDatabaseService db )
{
this.db = db;
// START SNIPPET: basetraverser
friendsTraversal = db.traversalDescription()
.depthFirst()
.relationships( Rels.KNOWS )
.uniqueness( Uniqueness.RELATIONSHIP_GLOBAL );
// END SNIPPET: basetraverser
}
private Node createData()
{
String query = "CREATE (joe {name: 'Joe'}), (sara {name: 'Sara'}), "
+ "(lisa {name: 'Lisa'}), (peter {name: 'PETER'}), (dirk {name: 'Dirk'}), "
+ "(lars {name: 'Lars'}), (ed {name: 'Ed'}),"
+ "(joe)-[:KNOWS]->(sara), (lisa)-[:LIKES]->(joe), "
+ "(peter)-[:KNOWS]->(sara), (dirk)-[:KNOWS]->(peter), "
+ "(lars)-[:KNOWS]->(drk), (ed)-[:KNOWS]->(lars), "
+ "(lisa)-[:KNOWS]->(lars) "
+ "RETURN joe";
Result result = db.execute( query );
Object joe = result.columnAs( "joe" ).next();
if ( joe instanceof Node )
{
return (Node) joe;
}
else
{
throw new RuntimeException( "Joe isn't a node!" );
}
}
似乎每次我运行这段代码时,它都会创建一个新的数据库实例,所有现有的数据都会被覆盖。
但是数据需要保存,我不会在代码中将所有数据导入数据库...
如何解决这个问题?我需要的是连接到数据库并使用现有数据。
谢谢
对于你的问题,我只加了两美分。
您可以将Neo4j服务器的REST API理解为传输层。您可以使用它,也可以使用驱动程序。这些驱动程序在下面使用REST API,但您不知道它。您也可以使用JDBC。
您会看到主文件的第一行,即FileUtils。递归删除(新文件(DB_路径)) ?它为您的数据库路径创建一个文件对象,然后递归删除其中的所有内容。这相当于在文件资源管理器中选择数据库目录并将其删除。因此,第一件事是从代码中删除这一行,看看它是否会在每次连接到现有数据库时删除并重新创建数据库。
问题内容: 目前,我们使用HSQLDB作为嵌入式数据库,但是随着数据量的增长,我们将搜索内存占用更少的数据库。 Derby / JavaDB 目前无法选择,因为它在系统属性中全局存储属性。所以我们想到了h2。 当我们使用HSQLDB时,我们创建了一个Server对象,设置参数并启动它。这描述在这里(和如实施例中的类org.hsqldb.test.TestBase的给定)。 问题是:这也可以与h2数
我正在构建一个将使用neo4j的web应用程序。我将在Java构建一个REST API,它将使用Neo4j嵌入式版本。这个架构有什么问题吗? 用别的方法好吗?Neo4j服务器? 谢谢!
我有一个Spring Boot和嵌入式Mongo DB的项目,我也想查找存储在那里的数据。我学习了本教程https://springframework.guru/spring-boot-with-embedd-mongoDB/
问题内容: 我打算开发一个小型(Java)应用程序来管理我的财务。我相信我需要使用嵌入式数据库,但是我没有关于此问题的经验。我试图查看一些可用的产品,但是我无法确定哪种产品更适合我。H2,HSQLDB,Derby和Berkeley DB似乎是不错的候选者,但是我仍然看不到它们之间的比较。感谢您的比较,并帮助我决定使用哪个。 我打算将Hibernate用于我的应用程序(除非您建议使用DBMS提供的A
问题内容: 我正在寻找可以用于使用Qt开发的应用程序的良好嵌入式数据库。这些应用程序针对来自一家大型公司的各个站点的桌面用户。该数据库应能够在每个站点分别存储数据,并且该数据应在需要时与其他站点合并。 问题答案: 除了SQLite,以下任何一项都可以与Qt一起用作嵌入式数据库。Qt已经拥有大多数驱动程序,您可以找到其他驱动程序。在“与其他站点”合并数据方面,这完全取决于您的意思。用于SQLite和
我正在尝试将嵌入式数据库derby与spring框架结合使用。我可以插入数据并读取它。除了数据库没有持久化之外,一切都很好。当我关闭应用程序并再次运行时,数据不存在。我猜数据库是再次创建的,但不知道为什么。 我的代码: 和Spring的输出日志是 create-db.sql内容是 解决方案:接受的答案指向正确的方向,但误差为db;create=true无法启动。然后,我查看了Netbeans ID