通过升序ID将数据存储在表中

时间:2013-04-29 10:45:59

标签: java mysql treemap linkedhashmap

我有一个程序,我必须从excel文件中读取数据并将它们存储在数据库中。我使用LinkedHashmap将每个单元格作为字符串读取并存储它们。我的excel文件包含数据:

ID    Name        Salary
43    paulina     1000
5     christine   2349000
54    laura       12587458
49    jim         45878

在我的代码中,我已经在excel文件的第一行创建了表的字段,然后我再次使用LinkedHashMap用剩余的数据填充表。 我的问题是,在这一步中,我可以将数据存储在表中,而不是它们在文件中的方式,而是通过升序ID。我搜索我可以用TreeMap做到这一点,但究竟是怎么回事? 有谁可以帮助我?

2 个答案:

答案 0 :(得分:0)

如果您的问题是如何对数据库进行排序,那么loki是对的:它不重要。如果您的问题是如何为程序订购...您可以使用TreeMap,它是一个快速的数据结构。您需要使结构中的对象实现Comparable,或者需要使用Comparator构造TreeMap。阅读关于二者的官方Java教程 - 要么可以使用,它只是略有不同的编程风格。

答案 1 :(得分:0)

DBMS(如MySQL,Oracle等)的一个特征是每行数据都是独立的。在DBMS中存储行没有自然顺序。

也就是说,当您使用SELECT语句检索行时,它们在结果集中呈现给您的顺序正式无法预测。如果您希望以可预测的顺序显示行,请在ORDER BY语句中使用SELECT子句。

有些DBMS技术会出现以特定顺序存储行的错觉。但是他们没有对此做出任何承诺,除非你使用ORDER BY,否则幻觉可能会随时中断。当桌子达到一定的尺寸时,当应用程序开始出现故障时,我学到了很多。

INSERT将它们放入MySQL之前订购行是浪费你的时间。保持插入软件非常简单。要在将它们取出后进行订购非常简单 - 使用ORDER BY