精华
Java连接neo4j的两种方式
通过java程序连接neo4j有多种方式,如JDBC,GraphDatabase。 (1)JDBC连接图数据库 依赖:
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-kernel</artifactId>
<version>3.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.neo4j/neo4j-cypher -->
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-cypher</artifactId>
<version>3.1.1</version>
</dependency>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-jdbc-driver</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<!-- 嵌入式开发需要的jar包 -->
<groupId>org.neo4j</groupId>
<artifactId>neo4j</artifactId>
<version>3.3.4</version>
</dependency>
代码:
public static void main(String[] args) {
Connection con = null;
try {
con = DriverManager.getConnection("jdbc:neo4j:http://localhost:7474/","neo4j","123456");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("match p=(a:Movie) return a limit 20");
List<Movie> list=new ArrayList<Movie>();
while(rs.next()) {
LinkedHashMap map=rs.getObject("a");
Movie movie=new Movie(map.get("title"));
}
System.out.println(list);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
(2)通过Neo4j封装的driver进行连接 通过这种方式连接neo4j,neo4j的底层默认是有连接池的。 连接池默认大小是50。 一个Driver关联了一个连接池,当driver.close关闭时,连接池所有连接都会关闭; driver.session()新建一个会话时,session会绑定一个连接对象; 当session.close()关闭会话时,会关闭连接对象(不是真的关闭,是假关闭,相当于放回连接池),关闭事务对象。