当前位置:   article > 正文

Neo4j学习笔记-Embedded嵌入模式简单示例_neo4j-embedded

neo4j-embedded

Java版本:jdk1.8.0_121

Neo4j版本:neo4j-community-3.5.22

相关依赖如下:

  1. <neo4j.version>3.5.22</neo4j.version>
  2. <neo4j.graph.version>3.5.22</neo4j.graph.version>
  3. <neo4j.driver.version>4.1.1</neo4j.driver.version>
  4. <!-- Neo4j依赖包 -->
  5. <dependency>
  6. <groupId>org.neo4j</groupId>
  7. <artifactId>neo4j</artifactId>
  8. <version>${neo4j.version}</version>
  9. </dependency>
  10. <!-- Neo4jGraph依赖包 -->
  11. <dependency>
  12. <groupId>org.neo4j</groupId>
  13. <artifactId>neo4j-graph-algo</artifactId>
  14. <version>${neo4j.graph.version}</version>
  15. </dependency>
  16. <!-- Neo4jDriver依赖包 -->
  17. <dependency>
  18. <groupId>org.neo4j.driver</groupId>
  19. <artifactId>neo4j-java-driver</artifactId>
  20. <version>${neo4j.driver.version}</version>
  21. </dependency>

相关配置如下

  1. @Configuration
  2. public class Neo4jConfiguration {
  3. @Value("${spring.data.neo4j.storedir}")
  4. private String neo4jStoreDir = null;
  5. @Bean("graphDatabaseService")
  6. public GraphDatabaseService graphDatabaseService() {
  7. return new GraphDatabaseFactory().newEmbeddedDatabase(new File(neo4jStoreDir));
  8. }
  9. }

相关示例代码如下:

  1. import org.neo4j.graphdb.*;
  2. import org.neo4j.graphdb.factory.GraphDatabaseBuilder;
  3. import org.neo4j.graphdb.factory.GraphDatabaseFactory;
  4. import java.io.File;
  5. import java.net.URL;
  6. import java.util.Map;
  7. import java.util.function.Consumer;
  8. public class GraphUtils {
  9. public static GraphDatabaseService createGraphDatabaseService(String neo4jStoreDir) throws RuntimeException {
  10. return new GraphDatabaseFactory().newEmbeddedDatabase(new File(neo4jStoreDir));
  11. }
  12. public static GraphDatabaseService createGraphDatabaseService(String neo4jStoreDir, String fileName) throws RuntimeException {
  13. return new GraphDatabaseFactory().newEmbeddedDatabaseBuilder(new File(neo4jStoreDir))
  14. .loadPropertiesFromFile(fileName).newGraphDatabase();
  15. }
  16. public static GraphDatabaseService createGraphDatabaseService(String neo4jStoreDir, URL url) throws RuntimeException {
  17. return new GraphDatabaseFactory().newEmbeddedDatabaseBuilder(new File(neo4jStoreDir))
  18. .loadPropertiesFromURL(url).newGraphDatabase();
  19. }
  20. /**
  21. * @param neo4jStoreDir
  22. * @param configProps
  23. * dbms.security.procedures.unrestricted=apoc.*
  24. * @return
  25. * @throws RuntimeException
  26. */
  27. public static GraphDatabaseService createGraphDatabaseService(String neo4jStoreDir, Map<String, String> configProps) throws RuntimeException {
  28. GraphDatabaseBuilder graphDatabaseBuilder = new GraphDatabaseFactory().newEmbeddedDatabaseBuilder(new File(neo4jStoreDir));
  29. for (Map.Entry<String, String> entry : configProps.entrySet()) {
  30. graphDatabaseBuilder.setConfig(entry.getKey(), entry.getValue());
  31. }
  32. return graphDatabaseBuilder.newGraphDatabase();
  33. }
  34. public static Node createNode(GraphDatabaseService graphDatabaseService, Object... properties) throws RuntimeException {
  35. return setProperties(graphDatabaseService.createNode(), properties);
  36. }
  37. public static Node createNode(GraphDatabaseService graphDatabaseService, Label label, Object... properties) throws RuntimeException {
  38. return setProperties(graphDatabaseService.createNode(label), properties);
  39. }
  40. public static <T extends PropertyContainer> T setProperties(T entity, Object[] properties) throws RuntimeException {
  41. for (int i = 0, len = properties.length; i < len; i++) {
  42. String key = properties[i++].toString();
  43. Object value = properties[i];
  44. entity.setProperty(key, value);
  45. }
  46. return entity;
  47. }
  48. public static void query(String neo4jStoreDir, String query, Consumer<Result> consumer) {
  49. GraphDatabaseService graphDatabaseService = createGraphDatabaseService(neo4jStoreDir);
  50. try (Transaction tx = graphDatabaseService.beginTx()) {
  51. consumer.accept(graphDatabaseService.execute(query));
  52. tx.success();
  53. }
  54. GraphUtils.shutdownGraphDatabaseService(graphDatabaseService);
  55. }
  56. public static void query(String neo4jStoreDir, String query, Map<String, Object> parameters, Consumer<Result> consumer) {
  57. GraphDatabaseService graphDatabaseService = createGraphDatabaseService(neo4jStoreDir);
  58. try (Transaction tx = graphDatabaseService.beginTx()) {
  59. consumer.accept(graphDatabaseService.execute(query, parameters));
  60. tx.success();
  61. }
  62. GraphUtils.shutdownGraphDatabaseService(graphDatabaseService)
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号