내 데이터베이스에서 일부 값을 반환하기 위해 웹 서비스에서 JDBC 쿼리를 선택했습니다. 이 표의 일부는이 질문에 첨부됩니다. 다음 쿼리를 수행 한 후 :JDBC 선택 쿼리가 잘못된 값을 반환합니다.
SELECT * FROM uses WHERE uses_user_fk='22';
을 나는 단지 하나 개의 행을받을 수 있지만 데이터베이스에 당신이 첨부 된 그림에서 볼 수 있듯이, 쿼리 조건을 충족 두 값입니다. 누군가 내가 실수 한 곳을 말해 줄 수 있습니까? 내가 쿼리
ResultSet tempResultSet = statement.executeQuery(query);
을 실행하기 위해 다음과 같은 JDBC 명령을 사용하고 데이터베이스 테이블
의
벨로 이미지 사용 : 나열된 데이터베이스를 쿼리 경쟁 방법 아래
는 인수 쿼리는 동일합니다 이전 "SELECT * FROM 용도 ...". (= 22 uses_user_fk)하지만 결과는 동일 나는 따옴표를 를 사용하지 않고 나는 또한이 쿼리를 시도, 그 쿼리에 대한 응답이 4 것을 추가해야합니다 :
protected ArrayList<Integer> queryForIds(String query, String column) throws Exception {
ArrayList<Integer> ids = new ArrayList<>();
try {
Class.forName("com.mysql.jdbc.Driver");
connect = DriverManager
.getConnection(GeneralDatabaseConstants.DATABASE_CONNECTION_URL);
statement = connect.createStatement();
ResultSet tempResultSet = statement.executeQuery(query);
if (tempResultSet.next())
ids.add(new Integer(tempResultSet.getInt(column)));
} catch (Exception e) {
throw e;
} finally {
close();
}
return ids;
}
잘못된 값주십시오! –
Java 코드를 보여주십시오. 어쩌면 당신은'while' 대신에'if'를 사용했을 것입니다. –
여러분은 단지 하나의 행만 반환한다고 생각하게 만드는 코드를 보여 주어야합니다. –