当前位置:   article > 正文

spring boot 集成图形数据库Neo4j_springboot无法读取neo4j 配置uri

springboot无法读取neo4j 配置uri

一、安装Neo4j图数据库我下载的是免安装zip版本的

1、解压ZIP包数据

2、配置环境变量

       创建主目录环境变量NEO4J_HOME,并把主目录设置为变量值。win10系统环境变量设置步骤NEO4J_HOME = F:\neo4j-            community-3.4.0   -- 根据自己的具体情况、Path = %NEO4J_HOME%\bin

3、验证Neo4j的安装和环境变量配置是否成功 -- 测试

       neo4j.bat console

4、册NEO4J服务不用每次启动的时候都要去点击启动neo4j.bat文件

         neo4j install-service

 

5、开启NEO4J服务

 启动neo4j start、停止 neo4j stop、重启neo4j restart

6、然后打开浏览器输入地址http://localhost:7474记住数据库的用户名和密码,一般默认的是:

    用户:neo4j,密码:neo4j

    我把把用户/密码修改成:neo4j/admin123

7、打开浏览器输入http://localhost:7474就会跳到登录界面

二、spring boot集成neo4j

      因为我的项目已经有了数据库oracle了所以还需要在集成neo4j比较麻烦一点,因为需要管理数据源所以为了不影响原来的数据源咱们直接用驱动获取Neo4j数据源的session然后在项目中直接执行cql语句。

1、配置neo4j的文件【neo4j.properties】数据库登录账号密码

  1. #neo4j图数据库配置文件
  1. spring.data.neo4j.uri=bolt://ip/:7687
  2. spring.data.neo4j.username=neo4j
  3. spring.data.neo4j.password=neo4j

2、pom.xml配置

  1. <dependency>
  2. <groupId>org.neo4j.driver</groupId>
  3. <artifactId>neo4j-java-driver</artifactId>
  4. <version>1.5.0</version>
  5. </dependency>

 

3、创建配置文件Neo4jConfig把neo4j的数据源驱动放到spring的容器内

  1. import org.neo4j.driver.v1.AuthTokens;
  2. import org.neo4j.driver.v1.Config;
  3. import org.neo4j.driver.v1.Driver;
  4. import org.neo4j.driver.v1.GraphDatabase;
  5. import org.slf4j.Logger;
  6. import org.slf4j.LoggerFactory;
  7. import org.springframework.context.annotation.Bean;
  8. import org.springframework.context.annotation.Configuration;
  9. import java.io.InputStream;
  10. import java.util.Properties;
  11. @Configuration
  12. public class Neo4jConfig {
  13. private static Logger log = LoggerFactory.getLogger(Neo4jConfig.class);
  14. private static String NEO4J_URI;
  15. private static String NEO4J_USER;
  16. private static String NEO4J_PASSWORD;
  17. static {
  18. try {
  19. Properties properties = new Properties();
  20. InputStream in = Neo4jConfig.class.getClassLoader().getResourceAsStream("conf/neo4j.properties");
  21. properties.load(in);
  22. NEO4J_URI = properties.getProperty("spring.data.neo4j.uri");
  23. NEO4J_USER = properties.getProperty("spring.data.neo4j.username");
  24. NEO4J_PASSWORD = properties.getProperty("spring.data.neo4j.password");
  25. } catch (Exception e) {
  26. log.error("读取neo4j配置文件失败" + e);
  27. }
  28. }
  29. /**
  30. * 将数据源注入到Spring容器
  31. *
  32. * @return
  33. */
  34. @Bean("neo4jDriver")
  35. public Driver session() {
  36. //配置连接池大小
  37. Config config = Config.build().withEncryption()
  38. .withTrustStrategy(Config.TrustStrategy.trustAllCertificates())
  39. .withMaxConnectionPoolSize(20).toConfig();
  40. Driver driver = GraphDatabase.driver(NEO4J_URI, AuthTokens.basic(NEO4J_USER, NEO4J_PASSWORD), config);
  41. return driver;
  42. }
  43. }

4、编写调用执行类方法

  1. import org.neo4j.driver.v1.Driver;
  2. import org.neo4j.driver.v1.Session;
  3. import org.neo4j.driver.v1.StatementResult;
  4. import org.slf4j.Logger;
  5. import org.slf4j.LoggerFactory;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.util.StringUtils;
  8. public class Neo4jApiUtil {
  9. private static final Logger log = LoggerFactory.getLogger(Neo4jApiUtil.class);
  10. @Autowired
  11. private Driver neo4jDriver;
  12. Session session = null;
  13. /**
  14. * 新增标签到图数据库
  15. *
  16. * @param createCql CREATE (a:Person {name: {name}, title: {title}})
  17. * @return
  18. */
  19. public void saveNeo4jInfo(String createCql) {
  20. try {
  21. if (!StringUtils.isEmpty(createCql)) {
  22. session = neo4jDriver.session();
  23. StatementResult result = session.run(createCql);
  24. }
  25. } catch (Exception e) {
  26. log.error("新增图数据库标签异常" + e);
  27. } finally {
  28. if (session != null) {
  29. session.close();
  30. }
  31. }
  32. return jd;
  33. }
  34. /**
  35. * 查询数据
  36. *
  37. * @param queryCql MATCH (a:Person) WHERE a.name = {name} RETURN a.name AS name, a.title AS title"
  38. * @return
  39. */
  40. public void queryNeo4jInfo(String queryCql) {
  41. try {
  42. if (!StringUtils.isEmpty(queryCql)) {
  43. session = neo4jDriver.session();
  44. StatementResult result = session.run(queryCql);
  45. }
  46. } catch (Exception e) {
  47. log.error("查询异常" + e);
  48. } finally {
  49. if (session != null) {
  50.   session.close();
  51. ​​​​​​​ }
  52. }
  53. }

三、执行结果

 

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/641548
推荐阅读
相关标签
  

闽ICP备14008679号