使用jdbc的sqlexception中的genral错误

时间:2017-02-26 02:56:23

标签: java sql-server jdbc

此代码有什么问题?

它始终显示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);
        }
    }
}

1 个答案:

答案 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));

希望这可以帮到你。