Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在NetBeans中执行jdbc代码时出现空指针异常?_Java_Jdbc_Nullpointerexception - Fatal编程技术网

Java 在NetBeans中执行jdbc代码时出现空指针异常?

Java 在NetBeans中执行jdbc代码时出现空指针异常?,java,jdbc,nullpointerexception,Java,Jdbc,Nullpointerexception,我正在将ms access连接到odbc,将odbc连接到javacode import java.sql.*; import java.util.logging.Level; import java.util.logging.Logger; /** * * @author aditya */ public class Odbc { /** * @param args the command line arguments */ public stat

我正在将ms access连接到odbc,将odbc连接到javacode

import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author aditya
 */
public class Odbc {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Connection con=null;Statement st=null;

        try {
          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println("driver loaded");           

        } catch (ClassNotFoundException ex) {
System.out.println(ex);           
        }
        try {
           con=DriverManager.getConnection("jdbc:odbc:studentdsn");
        } catch (SQLException ex) {
            Logger.getLogger(Odbc.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
            Statement St = con.createStatement();
            String sql="insert into Student values(111,gfhgf,kjhk,123,jgfj)";  
 int n; 
 n=st.executeUpdate(sql);
这里。。我得到运行时错误。延迟空指针

        } catch (SQLException ex) {
            System.out.println(ex);
        }


    }

}

您已将
con
定义为null,然后尝试将其初始化为:

try {
       con=DriverManager.getConnection("jdbc:odbc:studentdsn");
} catch (SQLException ex) {
    Logger.getLogger(Odbc.class.getName()).log(Level.SEVERE, null, ex);
}
现在,如果您在创建连接时遇到异常,您的连接仍将为null,然后您尝试使用null connection创建语句,如下所示:

try {
   Statement St = con.createStatement();
因此出现空指针异常


在一个try-catch块中创建所有与JDBC连接相关的语句,最重要的是找出连接创建失败的原因。

您有两个语句类型变量。您定义为空的一个:

Statement st=null;
还有一个是实际初始化的(“s”在这里是大写的):

然后对空变量调用函数:

n=st.executeUpdate(sql);
n=st.executeUpdate(sql);