此代码有什么问题?
它始终显示sqlexception一般错误,或者它进入调试过程。
package jdbc;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
public class FunctionDemo {
public static void main(String[] args) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection c = DriverManager.getConnection("jdbc:odbc:Data","Kanan","kanu");
CallableStatement cs = c.prepareCall("? = call func(?)");
cs.setInt(1, 5);
cs.execute();
System.out.println(cs.getInt(1));
} catch (Exception e) {
// TODO: handle exception
System.out.println(e);
}
}
}
答案 0 :(得分:1)
你有两个问题,第一个你错过了{}
,第二你应该指定什么是Out参数,我会认为它是一个INTEGER所以你的程序应该是这样的:
String query = "{ ? = call func(?)}";
CallableStatement statement = connection.prepareCall(sql);
//set the return parameter
cs.registerOutParameter(1, Types.INTEGER);
//your function take an int in the second position not in the 1st
cs.setInt(2, 5);
cs.execute();
System.out.println(cs.getInt(1));
希望这可以帮到你。