neo4j自动关闭连接
class CypherExecutor implements AutoCloseable { private final Driver driver; public CypherExecutor(String uri, String username, String password) { this.driver = GraphDatabase.driver(uri, AuthTokens.basic(username, password)) } public <T> List<T> readCyphers(String cypher, Function<Record, T> mapper) { try (Session session = driver.session()) { Result result = session.run(cypher); return result.list(mapper); } } @Override public void close() throws Exception { driver.close(); } }
public class Neo4jSession implements Closeable { @Autowired private Driver driver; /** * 查询遇到异常时进行重试,最多重试三次 * * @param cql * @return */ public List<Record> run(String cql) { Result result = null; boolean isAvailable; int count = 0; try (Session session = driver.session()) { do { try { result = session.run(cql); isAvailable = true; } catch (ServiceUnavailableException e) { isAvailable = false; count++; log.error(e.getMessage()); } //失败重试最多3次,避免陷入死循环! if (count == 3) { break; } } while (!isAvailable); //返回result必须在session关闭之前,否则读不到result if (result != null){ return result.list(); }else{ return Lists.newArrayList(); } } } @Override public void close() throws IOException { driver.close(); } }
标签:
Nosql
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端