2012-04-17 1 views
0
Statement st=(Statement) sqlcon.createStatement(); 
ResultSet p=st.executeQuery("SELECT * FROM `chat`.`online_users`"); 

ResultSet 개체를 통해 데이터베이스에서 데이터를 가져 왔지만 소켓을 통해 클라이언트에 보낼 때 오류가 발생합니다. 직렬화 할 수 없습니다. 데이터를 보내고 소켓을 통해 ResultSet을 통해 가져온 데이터를받는 방법?결과 세트를 통해 검색된 소켓을 통해 데이터를받는 방법?

답변

2

ResultSet에서 데이터를 읽고 List에 넣은 다음 List을 보냅니다. ArrayList 같은 모든 구현은 이미 Serializable 인터페이스를 구현하고 있습니다. this answer을 읽으면 목록 직렬화에 대해 자세히 알 수 있습니다.

1

글쎄, ResultSet에서 상속 받아 새로운 클래스에서 Serializable 인터페이스를 구현할 수있다. 레이어간에 XML을 전송하는 것이 더 나은 접근법을 제안하거나 모든 Java 솔루션을 원한다면 각 행에 대해 객체를 생성하고 컬렉션 클래스 또는 벡터에 채우고 ResultSet 클래스 대신 직렬화하는 방법에 대해 제안합니다. .

1

직렬화가 가능하고 네트워크 연결을 통해 전송해야하기 때문에 CachedRowSet을 시도해 보는 것이 좋습니다.