用StringBuilder連接MYSQL字段時被清空的問題

問題描述

讀取MySQL的數據,然後使用StringBuilder進行連接,但在運行時發現每次append到一個字段的時候StringBuilder就會被清空,最後只剩後邊的幾個字段。
假如讀出了四個字段:

字段名稱
id 10150145806225128
姓名 張三
消息 謝謝大家支持。
時間 2016-06-13 19:09:47

正確運行的話,應該最終輸出:

10150145806225128;張三;謝謝大家支持。;2016-06-13 19:09:47;0

但實際的輸出過程是:

10150145806225128
10150145806225128;張三
10150145806225128;張三;謝謝大家支持。
2016-06-13 19:09:47
最終:2016-06-13 19:09:47

可以看到在append完消息字段後,再append時間的時候StringBuilder被清空了。
如果append的時候跳過消息字段,也沒有任何問題

10150145806225128
10150145806225128;張三
10150145806225128;張三;2016-06-13 19:09:47
最終:10150145806225128;張三;2016-06-13 19:09:47

可能的解決方案

(1)首先考慮了StringBuilder長度限制的問題,但根據以往經驗應該不是,因爲沒有限制length參數,而且所有字段數據加起來也不長。
(2)考慮了編碼的影響,發現也沒什麼問題,從數據庫到程序都使用了utf8,在程序里加了強制轉換也依然沒什麼用處。
(3)懷疑是字段內容的問題,該字段爲消息字段,內容爲中文,如果把內容直接複製出來,在程序裏直接append沒有任何問題,但是如果從數據庫裏讀再append就會出現清空的現象。
感覺應該是讀取數據庫的時候在字段內容末尾加了什麼奇怪的東西,加了個trim()試了下,竟然成功了……

10150145806225128
10150145806225128;張三
10150145806225128;張三;謝謝大家支持。
10150145806225128;張三;謝謝大家支持。;2016-06-13 19:09:47
最終:10150145806225128;張三;謝謝大家支持。;2016-06-13 19:09:47

總結

So,就這麼解決了,下次讀取數據庫裏文本的時候,記得trim()一下……

發佈了110 篇原創文章 · 獲贊 19 · 訪問量 46萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章