0
次のコードがあります。基本的にjsf形式から提出されたデータを処理し、データベースのテーブルにデータを挿入しようとします。今私たちがインストールしたデータベースはかなり古いです...それはSQL Server 2000ですので、jtdsをドライバとして使用しました。コード:Java PreparedStatementエラー
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まで到達してから、制御が外れます。すべての変数の内容を調べましたが、すべて有効です。何が起こっているか考えてみませんか?これにしばらくお待ちください
可能な重複:[ここ](http://stackoverflow.com/questions/909599/java-mssql-java-sql-sqlexception-invalid-object-name-tablename)と[there](http:// stackoverflow .com/questions/6647846/invalid-object-name) - 単純な 'SELECT * FROM SLMDATA'を試して、同じエラーが出るかどうかを調べることができます。 – assylias
ありがとうございました@assylias:Dは本当に感謝し、その1つを見落として申し訳ありません:) –