在Java中使用DataTables苦苦挣扎

时间:2010-10-02 20:02:11

标签: java .net datatable in-memory-database

我是一名.NET开发人员,正在尝试使用Java。我当前的项目有一个UI层,业务逻辑层和一个数据访问层。我目前正在研究DAL。

我还没有连接到外部数据库;我曾希望让我的DAL类使用内存中的dataTable,直到数据库到位。

在.NET中,很容易制作内存中的dataTable,从中进行选择,添加它们并从中删除。但是,在Java中,我一直无法找到能够做同样事情的东西。

我正在考虑用强类型对象的集合替换'dataTables';但这需要在DAL中添加对Business层的引用(我认为这是禁止的)。

有人可以帮助困惑的开发者吗?如果整个方法存在缺陷,你会怎么做?如果我在Java中错过了相当于dataTable的东西 - 它是什么?

4 个答案:

答案 0 :(得分:1)

您可以使用this answer中所述的内存数据库。

this SO question中显示了不同内存数据库的比较。

答案 1 :(得分:1)

Here's an article运行内存中的Derby数据库。

如果我知道您正在使用什么数据库和哪个持久性库,我可能会给出更准确的答案。

答案 2 :(得分:1)

  我正在考虑更换   带有集合的'dataTables'   强类型对象;但那样会   需要添加对业务的引用   DAL里面的层(我想   这是禁止的。)

谁制定了这些规则?

如果您的数据访问层负责模型对象的CRUD操作,那么在我看来它必须引用它们。没有办法解决这个问题。

持久层无需了解服务或视图层。

唯一完全解耦的课程是与任何人交谈并且什么都不提供的课程。这没用。

不要那么挂“规则”。您正在尝试对应用程序进行分层。您将关于持久性的所有内容都放在一个类层中。

我不认为内存数据库对您设计持久层的方式有任何影响。您应该能够交换关系数据库或平面文件或任何其他机制,但接口不应更改。这是一个实现细节。

答案 3 :(得分:0)

OR / Ms在Java中比在.NET中早得多。 DataSet有缺陷,因为它们迫使您在程序上进行编程。尝试与对象进行交互,然后将这些对象映射到数据库。