gpt4 book ai didi

mysql - JSF Primefaces - 从数据库进行逆向工程时要考虑的事项,以尽量减少自定义更改

转载 作者:行者123 更新时间:2023-11-29 05:25:11 25 4
gpt4 key购买 nike

我已决定从数据库模式对我所有的 JSF (Primefaces) 页面进行逆向工程,这样我就可以根据我的表结构准备好最多的创建、读取、编辑、列表页面。

我的问题是 - 应该对数据库表进行哪些更改(例如数据类型、大小、不为空等),以便我的逆向工程流程处理所有验证?

我知道/已经尝试过以下:
1. 数据库 - NOT NULL => JSF 页面中的必需值
2. Varchar(30) => JSF页面最大长度为30
3. 数据库中的电子邮件列 => 在 POJO 中创建电子邮件注释

还有哪些事情可以在数据库级别处理,以便准确(或接近准确)按要求生成 JSF 页面?
逆向工程过程中JSF页面生成password字段可以做什么?
我们可以在逆向工程的过程中向页面添加任何自定义的JS函数吗?

请告诉我。

最佳答案

列出一个详尽的列表可能是一项艰巨的工作,但我同意有一些最佳实践可以将模型“智能”逆向工程到网络 (jsf-primefaces) 应用程序中。您需要能够使用以下功能丰富您的模型,以减少大量的自定义更改。从 DB 或 wsdl 开始为 20 多种技术(http://minuteproject.wikispaces.com)编写了代码生成器,这是我的建议:

  1. 别名:您的数据库约定可能与您的表示约定不匹配(例如:表 FIN_CREDIT 可以显示为 Credit,字段 EXCHANGE_RATE_ID 应显示为汇率更好...)
  2. 打包:表格/ View 可以根据其业务/技术方向进行打包。它将允许创建带有子菜单的菜单
  3. Content-type enrichment:指示表/ View 是否包含主数据(少量数据)、实时业务数据(可能数量巨大)。它会影响您显示基数的方式。对于带有 DropDown 列表的 OneToMany,当父实体是 masterdata 时,否则是一个 subUcecase;对于 many2many:当另一方是 masterdata 时的选择列表,否则是一个矫揉造作的 subUseCase 参见(http://minuteproject.wikispaces.com/primefaces-Spring)
  4. 刻板印象:该字段分配有一个隐式验证器 + 一个特定的表示(例如:以 _EMAIL 结尾的字段有一个电子邮件验证器 + 一个暗示电子邮件 (@) 的物理显示)

Minuteproject 涵盖了这些主要方面,无论是通过单独充实(特定表、字段)还是全局使用跨越整个模型的约定(例如:所有以 _TYPE 结尾的表都被视为主数据)

由 minuteproject 完成的 cloudbees 上在线 primefaces 的反向工程 mysql 数据库示例,可在 petshopapp.minuteproject.cloudbees.net 找到。

最终,您最后关心的是将任何自定义代码添加到逆向工程过程:您会听到的经典答案是否定的,还有经典的借口:您怎么会不知道逆向工程是一个抹杀您的定制的过程!

但这种说法对于 Minuteproject 来说是不正确的。 Minuteproject 使用可更新代码,这意味着您可以扩展或修改部分代码(java、xhtml,扩展或修改区域中的任何模板),并且在下一代将保留您的修改!参见 http://minuteproject.wikispaces.com/Updatable_Generated_Code

关于mysql - JSF Primefaces - 从数据库进行逆向工程时要考虑的事项,以尽量减少自定义更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20977864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com