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

设置参数时,帐号是多少?是 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 回答
1

我认为您需要这个,将值设置为 amt 变量。

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