我正在嘗試INSERT某些數據在ms訪問數據庫時使用jsp但它顯示了SQLException。 查詢有一個子查詢。 我試圖在訪問中運行查詢,查詢執行得很好。我不確定爲什麼jsp拋出異常。我已經一遍又一遍地檢查了我的查詢3小時,但仍然沒有用。誰能幫忙?如何寫入ms訪問數據庫使用jsp
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
//Creating new statement
Connection conn = DriverManager.getConnection("jdbc:odbc:accdbJava");
String uName = ((UserInfo) session.getAttribute("userInfo")).getUserName().trim();
//Creating statement
PreparedStatement stmt = conn.prepareStatement("INSERT INTO Message (User_ID, Heading, Body, DatePosted) VALUES ('(SELECT ID FROM User WHERE UserName = '" + uName + "')', '" + messageItem1.getSubject() + "', '" + messageItem1.getMessage() + "', '" + messageItem1.getDatePosted() + "');");
//Executing the update
stmt.executeUpdate();
//Closing connection, statement
stmt.close();
conn.close();
}
catch(Exception e) {
e.printStackTrace();
}
例外如下:
* java.sql.SQLException中:[微軟] [ODBC Microsoft Access驅動程序]語法錯誤(缺少運算符)查詢表達式 ''(SELECT ID FROM用戶WHERE UserName ='hrai')''。 在sun.jdbc.odbc.JdbcOdbc.createSQLException(未知來源) 在sun.jdbc.odbc.JdbcOdbc.standardError(未知來源) 在sun.jdbc.odbc.JdbcOdbc.SQLPrepare(未知來源) 在sun.jdbc .odbc.JdbcOdbcConnection.prepareStatement(未知來源) 在sun.jdbc.odbc.JdbcOdbcConnection.prepareStatement(未知來源) 在PostMessage.addMessageToDatabase(PostMessage.java:118) 在PostMessage.doPost(PostMessage.java:55) 在javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain .java:290) 在在org.apache.catalina.core.StandardContextValve org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) .invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor .process(Http11Processor.java:857) at org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandl er.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint $ Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Unknown Source) *
它是一個servlet代碼。並且它不起作用 –
您的代碼實現提供了以下錯誤:java.sql.SQLException:[Microsoft] [ODBC Microsoft Access Driver]查詢輸入必須至少包含一個表或查詢。 –
@ nick-s看到我的編輯。我花時間打開訪問權限並對此進行測試。 – Sean