精华 Java连接neo4j的两种方式
发布于 3 年前 作者 sky996 1193 次浏览 来自 分享

通过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进行连接 QQ图片20210726174349.png 通过这种方式连接neo4j,neo4j的底层默认是有连接池的。 image.png 连接池默认大小是50。 一个Driver关联了一个连接池,当driver.close关闭时,连接池所有连接都会关闭; driver.session()新建一个会话时,session会绑定一个连接对象; 当session.close()关闭会话时,会关闭连接对象(不是真的关闭,是假关闭,相当于放回连接池),关闭事务对象。

回到顶部