У меня есть результаты, которые взяты из базы данных, я хочу отправить результаты клиенту, а затем клиенту для отображения результатов в TableView
.
Мне удалось преобразовать ResultSet
на JSON
объект, а затем отправить его в виде строки клиенту, результаты показали на клиенте, но я не уверен, как отобразить его на TableView
.
на стороне сервера:
try {
Connection conn = DriverManager.getConnection(CONNECTION_STRING);
Statement statement = conn.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM inventory");
ArrayList<InventoryTable> hotelResult = new ArrayList<InventoryTable>();
try {
while(resultSet.next()){
hotelResult.add(new InventoryTable(
resultSet.getString(1),
resultSet.getString(2),
resultSet.getString(3),
resultSet.getDouble(4),
resultSet.getDouble(5),
resultSet.getDouble(6),
resultSet.getInt(7),
resultSet.getString(8),
resultSet.getString(9),
resultSet.getString(10),
resultSet.getString(11),
resultSet.getString(12)));
}}
catch (Exception e) {
}
String json = new Gson().toJson(hotelResult);
output.println(json);
conn.close();
} catch (Exception e) {
}
Клиентская сторона:
try (Socket socket = new Socket("Localhost", 5000)) {
socket.setSoTimeout(20000);
BufferedReader input = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
PrintWriter output = new PrintWriter(socket.getOutputStream(), true);
String response;
output.println(method);
response = input.readLine();
System.out.println(response);
ObservableList data = FXCollections.observableArrayList(response);
tableView.setItems(data);
} catch (SocketTimeoutException e) {
System.out.println("No response from the server! " + e);
} catch (IOException e) {
System.out.println("Error");
}
Результат ответа выглядит примерно так:
[{"Col1":"1","Col2":"Hello",},{"Col1":"2","Col2":"Hello",},{"Col1":"3","Col2":"Hello",}]