使用 JDBC 对查询执行更新时出现空指针异常
Null Pointer Exception while executeUpdate for a query using JDBC
我在执行插入查询时收到空指针异常。一切似乎都很好,但问题仍然存在。
用于数据库连接的代码。
public class DBConnect
{
static Connection c ;
static Statement st ;
{
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
c=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","ashuthesmartest","ashutosha");
st=c.createStatement();
}
catch (Exception ex)
{
JOptionPane.showMessageDialog(null, "Database error");
}
}
}
单击按钮时执行的操作
private void b3ActionPerformed(java.awt.event.ActionEvent evt) {
try
{
char[] arr = pa1.getPassword() ;
String s2 = Arrays.toString(arr) ;
String s1 = t3.getText() ;
DBConnect.st.executeUpdate("insert into LOGIN values('"+s1+"','"+s2+"')"); **//EXCEPTION IN THIS LINE**
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
您在其中创建连接和语句的初始化块不是静态初始化块。
因此,它只会在您创建 class DBConnect
.
的实例时执行
由于您似乎只是静态地使用 DBConnect
,所以这永远不会发生。你的初始化块应该是静态的。静态初始化块在左大括号前有关键字 static
:
static {
// try etc.
}
我在执行插入查询时收到空指针异常。一切似乎都很好,但问题仍然存在。
用于数据库连接的代码。
public class DBConnect
{
static Connection c ;
static Statement st ;
{
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
c=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","ashuthesmartest","ashutosha");
st=c.createStatement();
}
catch (Exception ex)
{
JOptionPane.showMessageDialog(null, "Database error");
}
}
}
单击按钮时执行的操作
private void b3ActionPerformed(java.awt.event.ActionEvent evt) {
try
{
char[] arr = pa1.getPassword() ;
String s2 = Arrays.toString(arr) ;
String s1 = t3.getText() ;
DBConnect.st.executeUpdate("insert into LOGIN values('"+s1+"','"+s2+"')"); **//EXCEPTION IN THIS LINE**
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
您在其中创建连接和语句的初始化块不是静态初始化块。
因此,它只会在您创建 class DBConnect
.
由于您似乎只是静态地使用 DBConnect
,所以这永远不会发生。你的初始化块应该是静态的。静态初始化块在左大括号前有关键字 static
:
static {
// try etc.
}