Java 如何在动态表单上完成CRUD操作?
我遵循了从数据库中定义的字段创建动态表单的步骤。 我可以获取已发布字段的字段名和值。 但我对如何将值保存到数据库中感到困惑Java 如何在动态表单上完成CRUD操作?,java,jsf,jpa,Java,Jsf,Jpa,我遵循了从数据库中定义的字段创建动态表单的步骤。 我可以获取已发布字段的字段名和值。 但我对如何将值保存到数据库中感到困惑 我是否应该在创建表单和 是否手动保存值(通过手动形成SQL查询) 我应该将名称/值对转换为JSON对象吗 还有储蓄 我应该创建一个带有id、名称、值字段和 是否在此处保存名称/值对(如EAV方案) 或者是否有任何方法可以将发布的值持久化到数据库中? 关于看起来你是在试图自下而上而不是自上而下地工作 链接答案中的动态表单旨在在所有现有表之间重用,而无需在每个表的“硬编码”
- 我是否应该在创建表单和 是否手动保存值(通过手动形成SQL查询)
- 我应该将名称/值对转换为JSON对象吗 还有储蓄李>
- 我应该创建一个带有id、名称、值字段和 是否在此处保存名称/值对(如EAV方案)
关于看起来你是在试图自下而上而不是自上而下地工作 链接答案中的动态表单旨在在所有现有表之间重用,而无需在每个表的“硬编码”Facelets文件上手动创建单独的JSF CRUD表单。您应该已经有了一个通用模型,其中包含特定DB表中所有可用列的信息(链接答案中的
字段)。这些信息可以通过JPA元数据信息(如何提取取决于所使用的JPA提供程序)或者在应用程序启动期间通过good’ol JDBC类动态地、一般地提取
如果你真的需要自下而上的工作,那么它会变得更加棘手。在运行时创建表/列是一个非常糟糕的设计(当然,除非您打算开发某种数据库管理工具,如PhpMyAdmin等)。不需要在运行时创建表/列,您基本上应该有3个表:
- 1个表,其中包含关于哪些“虚拟”数据库表都可用的信息李>
- 1个表,其中包含一个“虚拟”DB表具有哪些列的信息
- 一个表,其中包含一个此类列具有的值的信息
然后你应该通过FK关系将它们联系在一起。我已经阅读了Balusc的优秀教程,所有这些教程。我找不到那个教程和我的问题有什么关系。本教程是关于经典DAO的。我错过什么了吗?