を解析しますが、1を見つけることができない内部エラーが発生しました...私はます。java.sql.SQLException:私は解決策を探しています今、ほぼ2時間のコール可能文のメタデータ(欠落しているパラメータの型)
このエラーが発生し、どこから来ているのかわかりません。私は狂ってしまいます。みんな助けてくれますか?
エラー:
ます。java.sql.SQLException:コール可能文 メタデータ(欠落しているパラメータのタイプ)
そして、それはから来ているコードの一部を解析する内部エラー:
public char checkMap(int x, int y) {
char c = ' ';
try {
DAOConnection co = new DAOConnection(DBConnection.getInstance().getConnection());
final String sql = "{call Selectlvl1(?,?)}";
final CallableStatement call = co.getConnection().prepareCall("{call Selectlvl1(?,?)}");
call.setInt(x, x);
call.setInt(y, y);
call.execute();
final ResultSet resultSet = call.getResultSet();
c = resultSet.getString("symbol").charAt(0);
} catch (SQLException se) {
// Handle errors for JDBC
se.printStackTrace();
} catch (Exception e) {
// Handle errors for Class.forName
e.printStackTrace();
}
return c;
}
編集:ちょうどあなたが知っているように、私はいくつかのテストを運転しており、ラインはエラーca は、私は "CallableStatement"です。
EDIT 2:SQLプロシージャ:
LorannProject.level1
x
から選択したシンボル(p_x
INT(3)、p_y
INT IN(3))root
localhost
@ PROCEDURESelectlvl1
= DEFINERをCREATE = p_x & &y
= p_y;
ザ・スタックトレース(その一部):
ます。java.sql.SQLException:空の結果セット上の不正な操作。 com.mysql.jdbc.SQLError.createSQLException(SQLError.java:963) com.mysql.jdbc.SQLError.createSQLException(SQLError.java:896)at com.mysql.jdbc.SQLError.createSQLException(SQLError。 java:885) com.mysql.jdbc.SQLError.createSQLException(SQLError.java:860)at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:790)at com.mysql.jdbc.ResultSetImpl。 getStringInternal(ResultSetImpl.java:5240)com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5163)で com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5202)で model.DAOConnectionで 。 checkMap(DAOConnection.java:24) モデル。モデル.getMap1(Model.java:41)
今、call.setInt()を変更した後、エラーは "空の結果セットで不正な操作"になっています。
EDIT 3:空の結果セット上の不正操作:
ます。java.sql.SQLException:ちょうどいくつかのニュースを追加し、私は今、別のエラーを持っています。
は、私はそれがこの行から来ている(かなり確信している)と思う:私は「シンボル」と呼ばれるだけの列から最初の文字を取るしようとしています
c = resultSet.getString("symbol").charAt(0);
この行が右であれば、私は知りません。
をおそらく意味: 'call.setInt(1、x)は;'と 'call.setInt(2、y)の;'。ステートメントの各プレースホルダに適切なインデックスを提供する必要があります。 – Berger
スタックトレースとストアドプロシージャのシグネチャを送信してください。 –
ちょうどそれを追加しました。 @Berger:エラーコードは変更されますが、まだ動作しません。ありがとよ ! – Prototype