2015-11-21 2 views
-2

Я хочу передать ResultSet с сервера клиенту, а затем поместить все мои значения в JTable (он уже находится в клиенте). Я хочу использовать JSonObject, но я не понимаю, нужно ли его сериализовать, чтобы отправить его, или мне нужно отправить его прямо клиенту. Лучше ли использовать JSonObject или есть другой способ?Как передать ResultSet с сервера клиенту?

+0

Возможно, вы захотите передать данные в ResultSet обратно клиенту, но я не думаю, что вы хотите отправить фактический объект ResultSet или? Пожалуйста уточни. – ControlAltDel

ответ

1

Sending an object over a TCP connection is possible (and fairly easy). Однако указанный объект должен быть экземпляром класса, который implements Serializable.ResultSet is an interface and does not extend Serializable.

Если ResultSet расширенной Serializable (и рассуждения о том, почему он не показан на второй линии связи), то это может быть отправлено через ObjectOutputStream. Если это был класс, а не интерфейс, он может быть расширен (если он не является конечным классом и имеет по крайней мере один не закрытый конструктор), а расширение может затем реализовать Serializable. Опять же, это не случай.

В результате вы должны вместо этого считывать значения с ResultSet на сервере, а затем отправлять их в отличие от отправки самого ResultSet.

0

Вы никогда не должны возвращать ResultSet клиенту, клиенты не должны знать, какая обработка выполняется на сервере (в этом случае мы можем знать, что какая-то операция БД выполняется, точка абстракции теряется). Лучше всего было бы преобразовать ResultSet в коллекцию и вернуть коллекцию (например, ArrayList) клиенту.