如何将两个参数传递给Query java

时间:2016-03-30 04:41:01

标签: java jdbc parameters integer

所以我试图执行一个从用户获取2个int值的查询,但是我收到此错误消息。我做错了什么?

“当前语句的至少一个参数未初始化”

这是我的查询

selectStudentsInRange = connection.prepareStatement("SELECT* FROM Results WHERE total BETWEEN ? AND ?"); 

这是我的方法,是的不是整个代码。

public List< Results > getTotalMarksInRange( int value1, int value2 )
 {
  List< Results > results = null;
  ResultSet resultSet = null;

  try 
  {
      selectStudentsInRange.setInt( value1, value2 ); // specify id

     // executeQuery returns ResultSet containing matching entries
     resultSet =  selectStudentsInRange.executeQuery(); 

     results = new ArrayList< Results >();

请注意,这不是整个代码我有很多类我只是想知道这部分的错误是什么。

3 个答案:

答案 0 :(得分:2)

  

当前语句的至少一个参数未初始化

selectStudentsInRange.setInt( value1, value2 ); // specify id

更改为

selectStudentsInRange.setInt(1, value1 ); 
selectStudentsInRange.setInt(2, value2 ); 

答案 1 :(得分:1)

应该是:

selectStudentsInRange.setInt(1, value1);
selectStudentsInRange.setInt(2, value2);

第一个参数是参数索引,第二个参数是参数值。

请参阅文档here

答案 2 :(得分:-1)

  

看看这个Parameters For-PreparedStatement

selectStudentsInRange.setInt(1, value1 ); //this is how to set First Argument.
selectStudentsInRange.setInt(2, value2 )  // Set Your Second Argument.
//but make sure value1 and value2 both are Integer Type