首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设计:更新数据库记录部分的最佳方法是什么?

设计:更新数据库记录部分的最佳方法是什么?
EN

Stack Overflow用户
提问于 2016-07-11 11:32:06
回答 1查看 63关注 0票数 1

这个问题涉及最好的设计方法,而不是一种特定的技术技术。我有一个数据库表,其中包含系统用户的详细信息,即:用户名、密码、名字、姓氏(这些属性只能由管理员更改)。用户记录的其余部分包含地址、电话号码、移动号码等(这些属性只能由用户更改)。

因此,我需要两个表单,一个'admin‘表单和一个'user’表单,在每个表单上都有一个不同的可编辑字段集,以及适当的基于角色的安全性来控制使用。

以下是我可以采取的两种方法:

方法1.每个表单都有自己的后台bean,仅表示表单上可编辑的字段。在“保存”上,后台bean调用特定的DAO方法(例如UpdateUser_Admin或UpdateUser_User)来执行用户记录的部分更新。因此,这种方法涉及两个表单,每个表单的一个支持bean,以及DAO类中的两个方法。

方法2.像以前一样有两个表单,但是每个表单都通过为可编辑字段使用输入字段和为不可编辑字段使用隐藏字段来重新创建整个用户对象。这两种表单将使用相同的后台bean,表示所有用户属性。DAO中只需要一个方法--更新用户记录中的所有字段。

第二种方法对我来说似乎是有意义的,但我对开发还是新手,如果读者能给我建议,如果我错过了什么东西,我将非常感激。我已经考虑过将用户表分成两个单独的表,但在这种情况下这是不切实际的。谢谢你的建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-11 11:40:38

  • 一般情况下:不要创建DAO方法,只更新单个字段/属性。
  • 不要将User实体分割成两个表。
  • DAO是为管理实体而创建的,因此对每个类使用一个DAO,而对每个DAO只使用一个更新方法。
  • 如果不确定是否有完整的实体,请在服务层中执行以下步骤
代码语言:javascript
复制
- get data from form (at least id and field you want to update)
- retrieve `Object` representing entity from database (with `DAO::readById(id)` for example)
- update the field you need in the java `Object`
- call `DAO::update`

注意:i已将DTO填充到DBO对象

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38305862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档