Java 在NetBeans中执行jdbc代码时出现空指针异常?
我正在将ms access连接到odbc,将odbc连接到javacodeJava 在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
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);