在net beans中执行jdbc代码时是否为空指针异常?

时间:2015-02-28 12:35:04

标签: java jdbc nullpointerexception

我将ms访问odbc和odbc连接到java代码。

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);
        }


    }

}

2 个答案:

答案 0 :(得分:2)

您有两个Statement类型变量。你定义为null的一个:

Statement st=null;

和一个实际初始化的(" s"在这里是大写的):

Statement St = con.createStatement();

然后你在null变量上调用一个函数:

n=st.executeUpdate(sql);

答案 1 :(得分:0)

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

try {
       con=DriverManager.getConnection("jdbc:odbc:studentdsn");
} catch (SQLException ex) {
    Logger.getLogger(Odbc.class.getName()).log(Level.SEVERE, null, ex);
}

现在,如果在创建连接时遇到异常,您的连接仍然为null,然后您尝试使用null连接来创建语句,如下所示:

try {
   Statement St = con.createStatement();

因此空指针异常。

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