如何从数据库转换为带有列表的序列化
我有一个应用程序,其中使用 MySQL
服务器来存储和使用 5 个信息表。每当我必须表示信息时,我都会使用这样的 jTable:
# ID Name Info1 Info2 ...
=========================================
1 231 foo bar troll
2 244 .. .. ..
3 246 .. .. ..
..
.
这里的 ID 与存储在表中的主 ID 相同。当我希望用户选择/编辑这些记录之一时 - 我会在 jtable
上应用 SelectionListener
,读取所选行上的 ID,然后将更改应用到数据库中的该对象(使用我读取的 ID)
现在,我正在尝试将我的应用程序转换为与序列化对象一起使用,并将状态存储在文件中。数据将使用 LinkedList
存储,我将把列表本身序列化到文件中(而不是单个数据条目)。
我的问题是 - 如何将 LinkedList
与 jTable
一起使用,以便用户仍然能够选择/进行更改/对 jTable
进行排序。
更具体地说,
- 我如何知道用户在
jTable
中选择了哪个项目 - 我应该使用索引匹配吗?或者我应该将 ID 属性插入到基础对象中? - 如何根据对象属性(如按名称、info1 等排序)在
LinkedList
中执行排序,
谢谢。
I have this applications where I've used a MySQL
server to store and use 5 tables of information. Whenever I had to represent the information - I would use a jTable like this:
# ID Name Info1 Info2 ...
=========================================
1 231 foo bar troll
2 244 .. .. ..
3 246 .. .. ..
..
.
The ID here is the same primary ID that is stored in the tables. When i wanted the user to select / edit one of these records - I would apply a SelectionListener
on the jtable
, read the ID on the selected row, and apply the changes to that object in the Database (using the ID I read)
Now, I'm trying to convert my application for use with serialized objects and will be storing the state in files. Data will be stored using LinkedList
and I will be serializing the lists themselves into files (not individual data entries).
My question is - How do I use LinkedList
with jTable
such that the user is still able to select / make changes / sort through the jTable
.
To be more specific
- How do I know which item the user has selected in the
jTable
- should I use index matching? Or should I insert an ID attribute into the base objects? - How do I perform sorting in the
LinkedList
on the basis of object attributes (like sort by name, info1, etc.)
Thanks..
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要创建一个自定义表模型。扩展 DefaultTableModel 并从模型中的 LinkedList 返回数据。您还可以实现 setValueAt 方法以使 JTable 更改更新 LinkedList。
You need to create a custom table model. Extend DefaultTableModel and return the data from your LinkedList in your model. You can also implement the setValueAt method to have JTable changes update the LinkedList.