没有为setString找到合适的方法

时间:2013-11-29 19:45:41

标签: java stored-procedures

我正在编写一个在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();
   }
}

2 个答案:

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