我将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);
}
}
}
答案 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连接相关的语句,最重要的是找出连接创建失败的原因。