2012-04-17 4 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 представляется хорошим вариантом для вас.

Смежные вопросы