Statement st=(Statement) sqlcon.createStatement();
ResultSet p=st.executeQuery("SELECT * FROM `chat`.`online_users`");
我已經從數據庫中通過ResultSet對象獲取數據,但是當我通過套接字將它發送給客戶端時,它提供了一個錯誤。它不可序列化。如何發送數據並接收通過ResultSet通過套接字檢索的數據?如何通過結果集檢索的套接字接收數據?
Statement st=(Statement) sqlcon.createStatement();
ResultSet p=st.executeQuery("SELECT * FROM `chat`.`online_users`");
我已經從數據庫中通過ResultSet對象獲取數據,但是當我通過套接字將它發送給客戶端時,它提供了一個錯誤。它不可序列化。如何發送數據並接收通過ResultSet通過套接字檢索的數據?如何通過結果集檢索的套接字接收數據?
從ResultSet
中讀取數據,將其推入List
,然後發送List
。所有的實現如ArrayList
已經實現了Serializable
接口,您可以閱讀this answer以瞭解更多關於列表序列化的信息。
那麼,你可以從ResultSet繼承並在一個新類中實現Serializable接口。 我建議一個更好的方法是在圖層之間發送XML,或者如果你想要一個全Java解決方案,那麼爲每行創建一個對象,將它們填充到集合類或向量中,然後序列化它而不是ResultSet類。
由於它需要可序列化並通過網絡連接發送,所以CachedRowSet似乎是您嘗試的一個很好的選擇。