2010-06-07 36 views
0

我用Java编写了一个应用程序。我得到一个表格(客户端)的数据库,其中包含以下字段:Java:从数据库存储信息。什么样的藏品适合?

name |姓氏地址

将这些数据存储在我的应用程序中的最佳解决方案是什么?我应该为每个客户创建一个对象并将这些对象存储在列表或集合中吗?

该表包含约100条记录,并且已经排序。 在此先感谢。

回答

4

最简单的方法是创建一个包含对应于数据库列(姓名,地址)字段的类。然后,正如您已经说过的那样,为表格中的每一行创建此类的实例,并将它们存储在List中。

一个Set不会是合适的,因为大多数Set实现(例如HashSet)是没有顺序的,所以如果您的数据进行排序时,Set将不保留排序顺序。 A订购List

获取数据从数据库中,你可以简单地把它在JDBC自己的计划,这是在这种情况下很简单:打开到数据库的连接,执行SQL查询,遍历的ResultSet行,创建为每行添加一个对象,并使用从ResultSet获得的数据填充它,将创建的对象存储在List中。

当你的数据模型比单级更复杂,它可能是值得使用object-relational mapping(ORM)框架。 Java有一个标准的API,Java Persistence API(JPA)。 Hibernate是这个API的流行实现。

+0

如果客户想要优化搜索,让她使用数据库来完成。 – 2010-06-07 14:05:26

+0

['LinkedHashSet'](http://java.sun.com/javase/6/docs/api/java/util/LinkedHashSet.html)是按照像List这样的插入顺序排列的。 – BalusC 2010-06-07 14:05:40

+0

@BalusC是的,这是一个保留顺序的Set实现,但也要记住它不允许重复,并且如果你想要的话,你的数据类需要正确地实现equals()和hashCode()用这个。 – Jesper 2010-06-07 14:08:15

0

尽管Hibernate对于你正在做的事情可能是过度的,但你可能仍然想要检查它。如果你最终要做的不仅仅是检索,而且还需要投入一些时间(以后可以为你节省大量的工作)。

根据您与记录做什么,你可以把它们留在您的记录,在它们之间迭代,做任何你想要他们。如果你需要和他们一起做一些工作,那么是的,把每个对象放在一个对象中,并把这些对象放到某种类型的集合中(ArrayList会保持它们为你排序)。

0

您应该为该对象创建一个类,然后创建一个对象列表,每个对象对应一个表记录。

如果你打算经常这样做,我会建议使用一个像Hibernate这样的工具来使这个过程变得简单和自动化,所以你不必总是手动创建和填充类并与之交互数据库你自己。