如何编写neo4j的数据库接口-使用jdbc读取数据到后端

package jdbc_neo4j_test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 

public class neo4j_Jbdc 
{
    public static void main( String[] args ) throws SQLException
    {
        System.out.println( "Hello World!" );
        
        Connection con = DriverManager.getConnection("jdbc:neo4j:ip","username","password");
        
        try(Statement stmt = con.createStatement())
        {
        	ResultSet rs = stmt.executeQuery("MATCH (n) RETURN n LIMIT 25");
        	while(rs.next())
   		 {
   		     System.out.println(rs.getString("n"));
   		 }

        }
    }
}

 

  neo4j的jar最好使用maven来管理项目,在pom.xml中加入

<dependency>
    <groupId>org.neo4j</groupId>
    <artifactId>neo4j-jdbc-driver</artifactId>
    <version>{neo4j-jdbc-version}</version>
</dependency>

即可使用相关的包。

java笔记:

一、try(){}

这里的try(){}的语法含义

try(Resource res = xxx)//可指定多个资源
{
     work with res
}           

try块退出时,会自动调用res.close()方法,关闭资源。

二、jdbc基础

总的来说,使用JDBC的流程大概分为:

1. 装载驱动程序
2. 建立与数据库的连接
3. 执行SQL语句
4. 获取执行结果
5. 清理资源

如上代码所示

三、java-jdbc中的Statement到底是什么,怎么理解?

首先,每一个连接数据库,就有一个Connection,然后此Connection有很多Statement,如果要与请求一次数据库,就要有一个Statement。

其次Statement的介绍 
1,Statement 是 Java 执行数据库操作的一个重要方法,用于在已经建立数据库连接的基础上,向数据库发送要执行的SQL语句。Statement对象,用于执行不带参数的简单SQL语句。 
2,实际上有三种 Statement 对象,它们都作为在给定连接上执行 SQL语句的包容器: 
(1),Statement、 
(2),PreparedStatement(它从 Statement 继承而来)和 
(3),CallableStatement(它从 PreparedStatement 继承而来)。

它们都专用于发送特定类型的 SQL 语句: 
(1),Statement 对象用于执行不带参数的简单 SQL 语句; 
(2),PreparedStatement 对象用于执行带或不带 IN参数的预编译 SQL 语句; 
3,CallableStatement 对象用于执行对数据库已存储过程的调用。 
4,Statement 接口提供了执行语句和获取结果的基本方法。 
5 PreparedStatement 接口添加了处理 IN 参数的方法; 
而CallableStatement 添加了处理 OUT 参数的方法。

 

四、No enclosing instance of type Main is accessible. Must qualify the allocation with an enclosing instance of type Main (e.g. x.new A() where x is an instance of Main).

 

出现这个错误的时候,我一直不太理解。

在借鉴别人的解释之后才恍然大悟。

在代码中,我的Dog类是定义在Main中的内部类。Dog内部类是动态的内部类,而我的main方法是static静态的。

就好比静态的方法不能调用动态的方法一样。

访问其他类中的内部类时,

有两种解决办法:

第一种:

将内部类Dog定义成静态static的类。

第二种:

将内部类Dog在Main类外边定义。

posted @ 2018-09-17 16:32  白云君  阅读(637)  评论(0编辑  收藏  举报