[英]Java PreparedStatement error
我有以下代碼。 它嘗試基本上處理從jsf表單提交的數據,然后將數據插入數據庫的表中。 現在我們安裝的數據庫已經很舊了...它是sql server 2000,所以我使用jtds作為驅動程序。 編碼:
public void dbConnect(String db_connect_string,
String db_userid,
String db_password)
{
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver");
Connection conn = DriverManager.getConnection(db_connect_string,
db_userid, db_password);
System.out.println("connected");
dateSubmitted = "dasdasd";
/*HERE THE STATEMENTS TO INSERT*/
java.sql.PreparedStatement insertData = null;
String insertStatement = "INSERT INTO SLMDATA VALUES(?,?,?,?,?,?,?,?,?,?,"
+ "?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
insertData = conn.prepareStatement(insertStatement);
insertData.setString(1, serviceLogger);
insertData.setString(2, dateSubmitted);
insertData.setString(3, serviceName);
insertData.setString(4, department);
insertData.setString(5, division);
insertData.setString(6, businessServiceDescription );
insertData.setString(7, technicalServiceDescription);
insertData.setString(8, serviceCustomer);
insertData.setString(9, serviceCriticality);
insertData.setString(10, serviceRequestSystem);
insertData.setString(11, serviceCategory);
insertData.setString(12, serviceHours );
insertData.setString(13, availabilityTarget);
insertData.setString(14, lowIncidentResponseScale );
insertData.setString(15, lowIncidentResponseHrsType );
insertData.setString(16, lowResponseTimeText);
insertData.setString(17, mediumIncidentResponseScale);
insertData.setString(18, mediumIncidentResponseHrsType);
insertData.setString(19, mediumResponseTimeText);
insertData.setString(20, highIncidentResponseScale);
insertData.setString(21, highIncidentResponseHrsType );
insertData.setString(22, highResponseTimeText );
insertData.setString(23, lowIncidentResolutionScale );
insertData.setString(24, lowIncidentResolutionHrsType );
insertData.setString(25, lowResolutionTimeText );
insertData.setString(26, mediumIncidentResolutionScale );
insertData.setString(27, mediumIncidentResolutionHrsType );
insertData.setString(28, mediumResolutionTimeText );
insertData.setString(29, highIncidentResolutionScale );
insertData.setString(30, highIncidentResolutionHrsType);
insertData.setString(31, highResolutionTimeText );
insertData.setString(32, blockTime );
insertData.setString(33, impactedServices);
insertData.setString(34, operationalDependencies );
insertData.setString(35, disasterAvailable );
insertData.setString(36, configurationItems );
insertData.executeUpdate();
conn.close();
FacesContext.getCurrentInstance().getExternalContext().dispatch("thankyou.xhtml");
} catch (Exception e) {
e.printStackTrace();
}
}
public void callConnection(){
dbConnect("jdbc:jtds:sqlserver://host;", "username",
"password");
}
glassfish服務器控制台輸出顯示:
java.sql.SQLException:無效的對象名稱“ SLMDATA”。
SLMDATA是表的名稱,請確保它是正確的。 當我通過斷點功能單步執行代碼時,直到執行executeQuery,然后事情才失控。 我已經研究了所有變量的內容,並且所有變量都是有效的。 知道發生了什么嗎? 被困了一段時間
您應該嘗試將模式名稱放在表schemaName.table之前,或者在數據庫的模式中創建同義詞。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.