我正在嘗試將用戶名添加到.accdb本地數據庫中。我的代碼如下:Java空指針插入本地數據庫時出現異常
try
{
String sql = "INSERT INTO Users VALUES('?');";
System.out.println("SQL : " + sql);
System.out.println("USER : " + user);
PreparedStatement stmt = database.prepareStatement(sql);
System.out.println("Statement : " + stmt);
stmt.setString(1, user);
System.out.println("Statement : " + stmt);
ResultSet results = stmt.executeQuery();
System.out.println("Results : " + results);
}
catch(SQLException sqlEx)
{
System.out.println("* Cannot execute insertion! *");
sqlEx.printStackTrace();
System.exit(1);
}
控制檯輸出爲:
SQL : INSERT INTO Users VALUES('?');
USER : TEST
Statement : [email protected]
Exception in thread "Thread-0" java.lang.NullPointerException
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.clearParameter (JdbcOdbcPreparedStatement.java:1023)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setChar (JdbcOdbcPreparedStatement.java:3057)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setString (JdbcOdbcPreparedStatement.java:766)
at MultiEchoServer.addRegisteredUser(MultiEchoServer.java:100)
at ClientHandler.run(MultiEchoServer.java:339)
感謝您的幫助!
看堆棧跟蹤並找出原因線339的基準爲NULL。另外,它是'Java'而不是'JAVA'。 – Corbin 2012-04-17 21:19:57
@Corbin :)你有編輯權限,你知道。 – Lion 2012-04-17 21:21:15
@Lion是的,我已經編輯它。我只是想明確指出,所以提問者更可能注意到。我不知道爲什麼,但最近我注意到約有40%的Java問題將Java程式化爲'JAVA'(並且由於某種原因,它讓我感到不知所措)。 – Corbin 2012-04-17 21:22:20