Java에서 MySQL에서 레코드를 검색합니다
문제
MySQL 데이터베이스에서 데이터를 검색하기 위해 Java에서 응용 프로그램을 작성하고 있습니다. 쿼리를 실행 한 후 결과 세트를 얻고 레코드를 추출하기 위해 다음을 수행합니다.
while (rs.next())
{
for (int column = 1; column <= rm.getColumnCount(); column++) {
row.add(rs.getObject(column));
}
result.add(row.toString());
row.clear();
}
어디 Rs = resultSet 및 rm = resultSetmetadata
문제는 내가해야한다는 것입니다 result.add (row.tostring ()); 단지보다는 result.add (행); (2 차원 배열 목록을 만들고 싶습니다). 그렇지 않으면 빈 결과를 얻습니다.
나는 퍼팅을 시도했다 row.clear (); 처음에 ~을 위한 루프이지만 그 결과 모든 결과가 마지막 레코드의 여러 인스턴스로 채워집니다. 처럼 열 에 추가되지 않았습니다 결과 마지막까지 마지막 레코드와 같을 때까지. Arraylist를 "커밋"해야합니까? 열 다른 Arraylist에 elemt로 추가하기 전에? 그렇다면 어떻게? 또한 호기심으로 인해 왜 그렇습니다 .TOSTRING () 다르게 작동합니까?
해결책
row.toString ()을 추가하면 결과에 추가 할 새 문자열 객체를 작성합니다.
반면에 행을 추가하면 결과에 동일한 객체를 추가하므로 매번 row.clear ()가 호출되면 결과의 모든 행을 비우십시오.
당신이해야 할 일은 for 루프 전에 새 행 객체를 만들고 행을하지 않는 것입니다. 다음은 예입니다.
while (rs.next())
{
row = new ArrayList();
for (int column = 1; column <= rm.getColumnCount(); column++) {
row.add(rs.getObject(column));
}
result.add(row);
}
제휴하지 않습니다 StackOverflow