Java SQL语句-NullPointerException

Java SQL语句-NullPointerException,java,sql,Java,Sql,我在工作中被分配了一项任务,但我是Java和Eclipse的初学者。 我必须重新使用现有的程序,并修改它的某些部分。 以下部分不起作用: private java.sql.Connection conn; private final String sqlRequest = "select ... from ..."; //................ private void DBConnect(){ try { // Load the driver

我在工作中被分配了一项任务,但我是Java和Eclipse的初学者。 我必须重新使用现有的程序,并修改它的某些部分。 以下部分不起作用:

private java.sql.Connection conn;
private final String sqlRequest = "select ... from ...";
//................

private void DBConnect(){
    try {

        // Load the driver
        java.lang.Class.forName(jdbcdriver).newInstance();
        // Connect to database
        conn = java.sql.DriverManager.getConnection(jdbcURL,dbuser,dbpwd);
        //................

private void search2() {   
    try     {

        // create SQL statement

        java.sql.Statement stmt = conn.createStatement();       //my line 135
        java.sql.ResultSet rs = execRequest(stmt,sqlRequest);    
        //................
eclipse中的错误消息是:

"java.lang.NullPointerException at mon_prog.search2(mon_prog.java:135)"

这部分以前工作过。。。那么问题是由于我的JDK版本造成的吗?我让JDK7u2先获取连接…使用

Connection conn = DriverManager.getConnection(connection string);

您的
conn
看起来是空的。

了解有关如何从java程序(IDE中立方式)连接到MySQL数据库的精彩Vogella教程:

连接到数据库的示例步骤:

            // This will load the MySQL driver, each DB has its own driver
            Class.forName("com.mysql.jdbc.Driver");
            // Setup the connection with the DB
            connect = DriverManager
                    .getConnection("jdbc:mysql://localhost/feedback?"
                            + "user=sqluser&password=sqluserpw");

            // Statements allow to issue SQL queries to the database
            statement = connect.createStatement();
            // Result set get the result of the SQL query
            resultSet = statement
                    .executeQuery("select * from FEEDBACK.COMMENTS");

DBConnect()
中的
Class.forName()
getConnection()
调用以及第135行上设置断点,然后通过调试器运行所有断点。如果在尝试使用连接之前没有执行getConnection(),我一点也不会感到惊讶。(在那里,完成了,获得了源代码管理提交。)


如果不是这样,您可能还需要再次检查是否确实没有另一个变量隐藏您的预期
conn
实例。“进入定义”在这方面非常有用;只需确保您到达了预期的位置。

是的,很抱歉,我还有此方法连接到数据库:private void DBConnect(){尝试{//加载驱动程序java.lang.Class.forName(jdbdriver.newInstance();//连接到数据库conn=java.sql.DriverManager.getConnection(jdbcURL,dbuser,dbpwd)…@VincentCharrié:请将此添加到您的问题中。另外,在mon_prog.java的第135行中,您在search2()之前调用了DBConnect()吗?如果顶部异常行为135,则
conn
null
。我很确定
getConnection
从不返回null,因此您没有调用
DBConnect
,或者它抛出了丢失的异常。请检查异常日志。