Java 使用jdbc的sqlexception中出现一般错误
这段代码有什么问题 它总是显示sqlexception常规错误,或者进入调试过程Java 使用jdbc的sqlexception中出现一般错误,java,sql-server,jdbc,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 {
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);
}
}
}
你有两个问题,<强>第一< /强>你错过了<代码> {} /代码>,<强>第二版>强>你应该指定什么是out参数,我会认为它是整数,所以你的程序应该是这样的:
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));
希望这能对您有所帮助。好吧,JDBC-ODBC网桥不久前被删除了,您使用的是什么版本的Java?你的
异常
到底说了什么?噢,和cs.setInt(2,5)代码>如果使用SQL Server,则应使用mssql jdbc驱动程序,而不是ODBC。