为现有数据库开发Java CRUD的最佳框架是什么?

Ota*_*vio 7 java frameworks crud

我们有一个Java应用程序,在数据库(Oracle)上有许多配置表.我们希望有基于Web的GUI来设置这些表,我们目前通过SQL查询更新这些表.为数据库的子集开发CRUD的最简单方法是什么?这样做有没有基于Java的框架?

max*_*dev 8

恕我直言,有一个很好的解决方案来管理应用程序数据,而无需编写任何额外的代码.

LightAdmin是一个可插拔的Java库,用于Spring/JPA支持的应用程序,它通过干净简单的UI提供标准的CRUD功能,过滤,JSR-303验证.它提供用于界面定制的DSL,您可以随时从应用程序中插入/拔出它.

以下是DSL配置定制的一个小例子:

@Administration( Booking.class )
public class BookingAdministration {

public static ScopesConfigurationUnit scopes( final ScopesConfigurationUnitBuilder scopeBuilder ) {
    return scopeBuilder
        .scope( "All", all() )
        .scope( "Smoking Apartments", specification( smokingApartmentsSpec( true ) ) )
        .scope( "Non Smoking Apartments", specification( smokingApartmentsSpec( false ) ) )
        .scope( "Long-term bookings", filter( longTermBookingPredicate() ) ).defaultScope().build();
}

public static FiltersConfigurationUnit filters( final FiltersConfigurationUnitBuilder filterBuilder ) {
    return filterBuilder
        .filter( "Customer", "user" )
        .filter( "Booked Hotel", "hotel" )
        .filter( "Check-In Date", "checkinDate" ).build();
}

public static FieldSetConfigurationUnit listView( final FieldSetConfigurationUnitBuilder fragmentBuilder ) {
    return fragmentBuilder
        .field( "user" ).caption( "Customer" )
        .field( "hotel" ).caption( "Hotel" )
        .field( "checkinDate" ).caption( "Check-In Date" )
        .field( "smoking" ).caption( "Smoking" )
        .field( "beds" ).caption( "Beds" )
        .build();
}

public static DomainTypePredicate longTermBookingPredicate() {
    return new DomainTypePredicate() {
        @Override
        public boolean apply( final Booking booking ) {
            return booking.getNights() > 20;
        }
    };
}

public static DomainTypeSpecification smokingApartmentsSpec( final boolean isSmokingApartment ) {
    return new DomainTypeSpecification() {
        @Override
        public Predicate toPredicate( final Root root, final CriteriaQuery<?> query, final CriteriaBuilder cb ) {
            return cb.equal( root.get( "smoking" ), isSmokingApartment );
        }
    };
}

}
Run Code Online (Sandbox Code Playgroud)


Joh*_*n T 6

Telosys Tools(http://www.telosys.org/)就是为这类工作而设计的.

它使用现有数据库生成源代码(通常是CRUD屏幕).如有必要,可以自定义模板

尝试它的最佳方法是遵循教程:https://sites.google.com/site/telosystutorial/
(有一个Spring MVC/Spring Data/JPA的堆栈)

另见:http://marketplace.eclipse.org/content/telosys-tools


ame*_*vin 0

我认为使用 ORM 工具可以更轻松地生成 CRUD。SO 最近有一个关于Java ORM 的问题- 其中 Hibernate 获得了最多的选票(尽管没有使用排名相当高的 ORM!)。