2011-08-24 49 views
0

我有一个页面,用户可以编辑大量信息,现在大约有100行DDL和一个文本区域,我想在每次更改后更新数据对象,这样我只需要将更改的行保存到数据库,而不是更新每一行。持久数据对象实现

即当DDL值发生变化或文本区域数据发生变化时(这是在弹出窗口中完成的,因此只有在点击“确定”时才会更改),它将被存储到数组中,并保存每个更新行作为对象。当用户点击保存时,它只会保存已更改的行。

现在即时通讯使用AJAX,以便它使HTTPRequest,从会话中获取数组,并添加一个新的值与新的条目。不幸的是,我认为这个页面有时会自动加载,而不是保持数据正确。我不知道为什么,但想知道实施这个的最好方法是什么,如果这是做这件事的好方法。

Java bean或其他东西会更好地表示数据对象吗?

会不会访问和存储在会话中更快,并防止这种情况?

+0

是否使用像Hibernate/JPA任何持久化框架? – Padmarag

+0

目前没有,只是想弄清楚这个最好的架构,我的总体目标是不必循环通过每个值,并更新数据库,当我不必... – JAManfredi

回答

0

Java bean对此非常有用(与java Map相比)。

据我所知你只想为更改的项目调用UPDATE,最好的做法是为该java bean类实现equals()。

您必须将旧值存储在会话中或服务器上的其他任何位置,以便能够确定发生了什么变化。

无论如何,你必须循环,也比较每个对象:

if (!prevValue.equals(currValue)) { 
    DAO.update(currValue); 
} 
+0

好的答案!我看着它! – JAManfredi