2012-04-17 30 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似乎是您嘗試的一個很好的選擇。

相關問題