我正在编写一个在MSSQL数据库中调用存储过程的方法。
存储过程有4个输入,所有数字。
我正在使用setString()
输入存储过程的参数。
我收到以下编译错误
找不到
的合适方法setString(int, int)
似乎想要setString(int, string)
,但我需要传递的参数是整数,而不是字符串。
有没有办法传递整数或是否必须将int
转换为string
?
public void genRoadMap(int id, int semester, int debug, int units)
{
CallableStatement c = null;
try
{
c = connection.prepareCall("{call dbo.GenerateRoadMap(?, ?, ?, ?)}");
c.setString(1, id);
c.setString(2,semester);
c.setString(3,debug);
c.setString(4,units);
c.execute();
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
答案 0 :(得分:2)
如果这是方法签名所期望的,那么您必须将int
转换为String
。您可以使用String.valueOf()
方法来完成此任务。
要解决您在评论中所说的内容:如果您尝试将过程处理数据作为int
,则需要使用相应的方式传入数据CallableStatement
中的方法(在此示例中为setInt()
)。
答案 1 :(得分:2)
c.setInt(1, 100); // For integers
c.setString(2, "string"); // For strings
c.setDate(3, new Date()); // For dates