0

私はjdbcの初心者です私のプログラムは常に0.0を返します...ヘルプ

 CallableStatement cs= con.prepareCall("{ call  getbalance(?,?) }");
    cs.setInt(1, 1234);
    //cs.setString(2, "dfdf");
    cs.registerOutParameter(2, Types.DOUBLE,23);
    cs.execute();
    System.out.println("Balance is "+ cs.getDouble(2));

             CREATE PROCEDURE `getbalance`( acno int, out amt int)
              begin 
                       select bal * amt from bank WHERE accno=acno; 
               end;
4

2 に答える 2

1

これが必要だと思います。値をamt変数に設定します。

Set amt = (select bal * amt from bank WHERE accno=acno); 
于 2013-02-02T05:47:25.897 に答える
1

パラメータを設定するためのアカウント番号は何ですか? 1ですか、それとも1234ですか?

cs.setInt(1, 1234);

入力しているacnoのレコードがない可能性があります...

あなたが入力した、

select bal * amt from bank WHERE accno=acno; 

入力パラメーターと出力パラメーターの両方がある場合、次のようにすべきではありません

select bal INTO amt from bank WHERE accno=acno; 

編集された SP は次のようになります。

CREATE PROCEDURE `getbalance`( IN acno int, OUT amt int)
 AS
    BEGIN 
                 SELECT bal INTO amt FROM bank WHERE accno=acno; 
    END;
于 2013-02-02T05:33:37.653 に答える