2015-01-06 2 views
0

이 오류의 의미 또는 해결 방법을 알 수 없습니다. 내 데이터베이스에서 데이터를 가져 오려고하지만 아래 오류 메시지가 계속 표시됩니다. 당신은 추가해야MySQL 결과 집합 - 매개 변수 1에 지정된 값이 없습니다

SELECT * FROM mydatabase WHERE TickerID= ? 

:

preparedStatement = connect 
      .prepareStatement("SELECT * FROM mydatabase " 
         + " WHERE TickerID=?"); 
      resultSet = preparedStatement.executeQuery(); //where it says the error is, line 132 
      while(resultSet.next()) 
      { 
       aIDTA = resultSet.getInt("AccountID"); 
       nameTA = resultSet.getString("Name"); 
       CashBalance = resultSet.getDouble("CashBalance"); 
       TradeFeeBuy = resultSet.getDouble("TradeFeeBuy"); 
       TradeFeeSell = resultSet.getDouble("TradeFeeSell"); 
       AssetsBalance = resultSet.getDouble("AssetsBalance"); 
      } 



Exception in thread "main" java.sql.SQLException: No value specified for parameter 1 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:996) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:935) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:924) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:870) 
    at com.mysql.jdbc.PreparedStatement.checkAllParametersSet(PreparedStatement.java:2281) 
    at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2261) 
    at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2191) 
    at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2004) 
    at BuyAndSell.BuyAndSell(BuyAndSell.java:132) 
    at Main.main(Main.java:21) 
+0

는 오류 메시지는 매우 명확하게 말한다. 당신은 아무런 매개 변수 집합도없고, 이런 종류의 질문을 해결하기위한 오류를 Google이 ... –

+0

[java.sql.SQLException : 매개 변수 5에는 값을 지정하지 않았지만 문자열 길이는 4가 아닌 5] (http : /stackoverflow.com/questions/22287160/java-sql-sqlexception-no-value-specified-for-parameter-5-but-the-string-length) –

+0

@NoaNoNym이 질문에는 같은 오류가 있지만, 정확한 복제 : 그 질문에서 사용자는 또한 객체 이름을 매개 변수화하려했습니다. –

답변

7

당신은 당신이 당신의 요청에 대한 매개 변수를 설정하지 않았기 때문에 그것은 어쩌면이다 PreparedStatement

preparedStatement.setLong(1, someIdentifier) 
+0

아, 정말 고마워요. – Frodgers

2

에 매개 변수를 입력해야

preparedStatement.setString(1, "youUserIdValue"); 

전에 쿼리를 실행하십시오.

또한라는 이름의 매개 변수를 사용할 수 있습니다 : 당신은 매개 변수를 누락

preparedStatement = connect 
     .prepareStatement("SELECT * FROM mydatabase " 
        + " WHERE TickerID=:userID"); 
preparedStatement.setString("userID", "youUserIdValue"); 
+0

JDBC에는 네이밍 된 파라미터는 없지만, 벤더 고유의 구현으로이 파라미터가 포함되어있는 경우가 있기 (위해) 때문에, 2 번째의 예는 표준의 java.sql.PreparedStatement 인터페이스 –

관련 문제