Java 基于现有数据库或hibernate配置在Spring中生成简单的crud应用程序?
我正试图学习SpringMVC,但被Grails搞砸了。虽然我能够让一个基本的web应用程序工作,但我想知道是否有任何工具可以在给定数据库或hibernate数据模型的情况下创建crud应用程序?到目前为止,我唯一发现的一个问题是,我不确定如何将生成的代码转换为使用maven或ant进行构建过程。我从未尝试过,但它似乎允许您通过maven进行此操作。有一个Java 基于现有数据库或hibernate配置在Spring中生成简单的crud应用程序?,java,hibernate,spring,crud,Java,Hibernate,Spring,Crud,我正试图学习SpringMVC,但被Grails搞砸了。虽然我能够让一个基本的web应用程序工作,但我想知道是否有任何工具可以在给定数据库或hibernate数据模型的情况下创建crud应用程序?到目前为止,我唯一发现的一个问题是,我不确定如何将生成的代码转换为使用maven或ant进行构建过程。我从未尝试过,但它似乎允许您通过maven进行此操作。有一个mvn-appfuse:gen-model命令用于对数据库进行反向工程,还有一个mvn-appfuse:gen命令用于创建脚手架的其余部分 我
mvn-appfuse:gen-model
命令用于对数据库进行反向工程,还有一个mvn-appfuse:gen
命令用于创建脚手架的其余部分
我认为您必须在使用Appfuse Maven原型之一创建的项目中运行这些。您可以找到快速入门指南来设置它
也有一些很好的脚手架,但它还没有从您正在寻找的数据库中进行反向工程。您的持久性对象需要被注释为@RooEntity对象,然后才能利用该框架的脚手架。我也进行了同样的搜索。最后看了一下JBossSeam。Seam似乎有一个数据库模式导入,并生成必要的后端和前端代码。 Spring Roo Seam与JBoss Seam非常相似,只是Seam更长、更成熟。试试看,对于基于Spring/JPA的应用程序来说,这是一个不错的选择。它有一个用于接口配置的内置Java DSL,您只需下载jar或声明Maven依赖项,通过web.xml(指向包含JPA实体的包)启用域管理,并为实体创建@administration配置类 因此,对于CRUD、过滤等,您将拥有一个干净、简单的UI 以下是一个配置示例:
@Administration( Customer.class )
public class CustomerAdministration {
public static EntityMetadata configuration(EntityMetadataBuilder configurationBuilder ) {
return configurationBuilder.nameField( "firstname" ).build();
}
public static ScreenContext screenContext( ScreenContextBuilder screenContextBuilder ) {
return screenContextBuilder
.screenName( "Customers Administration" )
.menuName( "Customers" ).build();
}
public static FieldSet listView( final FieldSetBuilder fragmentBuilder ) {
return fragmentBuilder
.field( "firstname" ).caption( "First Name" )
.field( "lastname" ).caption( "Last Name" ).build();
}
如果你想通过逆向工程学习SpringMVC,有一个微小的项目跟踪 It“智能”反向工程您的db模式,提供
- JPA2
- AO w/spring集成
- springmvc与REST集成
智能逆向工程意味着您的Java实体不必遵循DB约定(例如,表T_用户可以给Java用户类…)只需遵循本教程: 它将生成一个完整的Web应用程序 基于Spring MVC/Spring Data/JPA,Telosys完成以下工作: 如果您有一个数据库,它将使用它作为模型来生成代码(JPA实体等) 标准模板捆绑包可用于生成具有CRUD屏幕的完全可操作的web应用程序您可以查看项目,了解如何使用生成:
- CRUD Rest API
- API的文档
- AngularJS积垢管理界面
- 如果您使用Hibernate Envers审计实体,则用于检索审计信息的Rest API和相关单元测试
我无法让generate命令在appfuse中工作,但我已经研究了springroo。我决定使用SpringRoo,我的数据库非常简单,可以手动创建所有必要的实体。我真的很喜欢SpringRoo,虽然我不知道我是否会将其用于生产应用程序,因为它似乎仍然缺乏良好的文档,但我认为这将在1.0版本中得到修复。数据库反向工程也被列为一项高优先级的功能要求。该网站说,SpringFuse不再运行,但…为SpringFuse供电的代码生成器现在是开源的。我将把这个留在这里,以防有人对开源CRUD生成器感兴趣:这个项目看起来很有希望,但它是否得到支持?GitHub上的最新提交是两年前。它似乎死的比活的多。