2016-09-07 27 views
1

在將MySQL表值插入到JTable並預覽此JTable後,我注意到「BIT」列正在返回一個「1」作爲我無法粘貼到此處的奇怪框,並返回0作爲空格。我會離開的位錯誤顯示的屏幕截圖 :來自MySQL表的怪異位值

enter image description here

+0

可能是一個編碼/排序規則問題 – Rahul

回答

1

BIT列中存儲位的二進制數據,而不是「1」或「0」(字符串的字符1或0),你需要使用export_set() function將位值轉換爲字符串。如果你的領域被定義爲BIT(M)(M是比特字段的長度),然後

select export_set(field_name, '1','0','',M) from yourtable 

查詢將在一個字符串表示返回位字段的值,連續1和0。

+0

這個問題是我允許用戶查看多個表。具有BIT值的列的字段名稱可能會在不同的表中更改,因此每次都必須更改字段名稱。 – Plumel

1

通過defaultJTable呈現TableModelBoolean使用JCheckBox。您可以通過在模型的實現isCellEditable()中爲該列返回true來使單元可編輯,如here所示。

或者,您可以

  • 返回您的首選類型爲模型的實現getColumnClass()該列,如圖所示here

  • 使用自定義渲染器,如here所示。

+0

MySQL中的布爾和位數據類型不一樣。布爾值只是tinyint的別名,而位數據類型表示位字段。 – Shadow

+0

@Shadow:我對此表示感謝。我懷疑作者正在使用某種表格模型適配器,它以所示的方式引出默認的渲染器。 – trashgod

+0

我目前實際得到的是一段循環遍歷JTable中的行和列的代碼,並且如果保存數據的變量等於該框,則它將其更改爲1.我打算做同樣的0,但我不知道這是什麼字符(因爲它只是一個空格,並試圖改變空格不起作用) – Plumel