Есть ли в Java (любой платформе) утилита генератора CRUD, например Scaffolding in Rails?

Есть ли в Java утилита-генератор CRUD, такая как Scaffolding in Rails? Может быть в любой структуре или даже в простых сервлетах. Должен генерировать контроллеры + представления в jsp, а не только код DAO ...

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
52
0
51 081
22
Перейти к ответу Данный вопрос помечен как решенный

Ответы 22

У Netbeans есть что-то вроде этого.

Здесь есть демонстрация: http://www.netbeans.org/kb/55/persistence-demo.html

Грааль имеет строительные леса.

+1. но обратите внимание, grails на самом деле основан на Groovy, но groovy обратно совместим с java, и вы можете смешивать и сопоставлять классы groovy и java в одном проекте.

frankodwyer 06.01.2009 00:45

Также обратите внимание, что JRuby и Rails также приемлемо работают на JVM.

Bill K 06.01.2009 02:06

извините за отрицательный голос, но я думаю, что в вопросе указана Java, а не JVM

Bozho 08.01.2010 13:11

@Bozho: а «Java» может означать только «Java, язык» и никогда не используется как «Java, платформа»?

Joachim Sauer 08.01.2010 13:13

ты в общем прав. Но в случае такой двусмысленности уместно сначала спросить ОП, что он на самом деле имеет в виду. В противном случае предполагается более простой (например, язык Java). Имо :)

Bozho 08.01.2010 13:18

У меня это есть давным-давно.

http://mahosoft.com/docs/WhitePaper-WEB-App-Spanish.pdf

Перевод Google на английский:

http://translate.google.com/translate?hl=en&u=http://mahosoft.com/docs/WhitePaper-WEB-App-Spanish.pdf&sl=es&tl=en

Хотя может быть и устаревшим.

В JBoss Seam есть скриптовая утилита под названием seam-gen, которая создает строительные леса:

http://docs.jboss.org/seam/1.1BETA2/reference/en/html/gettingstarted.html

В Google Code есть кривить. Я еще не пробовал, но выглядит многообещающе.

Поскольку вопрос был задан, вышло несколько фреймворков для Java. Проверьте Spring Roo и Play Framework. Есть также Строитель Skyway, который, я думаю, предшествовал обоим.

Попробуйте Grails на http://www.grails.org/

AppFuse.

Он очень мощный, возможно, будет слишком мощным для рассматриваемой задачи, но он справляется с этим хорошо.

Ответ принят как подходящий

Spring Roo, кажется, именно то, что вы ищете: генерация кода CRUD, выдает чистый Java-код, который можно заставить работать полностью независимо от фреймворка.

Ну, не совсем чистая Java, там по умолчанию много AspectJ, и я слышал разные отчеты о том, насколько полностью его можно удалить без применения смазки для локтей.

mezmo 21.01.2011 19:28

Но я думал, что AspectJ - это Java.

John John Pichler 22.07.2011 23:28

@Ed: По сути, это расширение Java, которое добавляет новые языковые конструкции. Для этого требуется специальный компилятор (который обычно медленнее, чем обычный компилятор Java), а также (я думаю) компонент времени выполнения.

Michael Borgwardt 22.07.2011 23:38

Проверить Тинамо

ReinCRUD - это надстройка ваадин, которая работает с аннотированными объектами гибернации. Вы можете создать приложение CRUD за несколько минут, и вы можете повторно использовать такие компоненты, как списки, формы и формы поиска.

NetBeans может генерировать CRUD для существующей базы данных в JSF.

А что насчет OpenXava http://openxava.org?

См. Jspresso - http://www.jspresso.org/
Он имеет несколько интерфейсов (Flex, чистый HTML / Javascript, Swing и т. д.), Но не дает вам большой свободы в части просмотра. Однако стоит проверить.

См. Плагин Telosys Tools Eclipse на http://www.telosys.org/

Плагин подключается к базе данных, создает легкий репозиторий, позволяет настраивать репозиторий при необходимости и генерирует Java Beans, DAO, конвертеры XML, ScreenMaps (JSP) и т. д.

Вы можете создать веб-приложение, ориентированное на данные, за несколько минут

Учебники доступны здесь: sites.google.com/site/telosystutorial для Spring MVC, Spring Data, JPA, AngularJS и т. д.

John T 10.04.2014 13:20

Telosys - мой предпочтительный генератор кода, потому что он бесплатный, открытый, легкий, удобный и, кроме того, генерирует чистый Java-код. Поскольку все шаблоны настраиваются, вы можете создавать именно то, что хотите.

rlopez 01.12.2020 21:16

Не забывайте Играть. Чрезвычайно проста в использовании. Если у вас есть опыт работы с Ruby on Rails, вам будет легко адаптироваться и к Java.

Взгляните на такие инструменты, как:

MetaWidget http://www.metawidget.org/

ISIS http://incubator.apache.org/isis/index.html (ранее обнаженные объекты)

Они генерируют пользовательский интерфейс «на лету», но позволяют при необходимости настраивать пользовательский интерфейс.

Намного лучше, чем генерация кода.

Это может быть немного вне контекста, но для Java EE есть Jboss Кузница. Его использует пример.

Если у вас есть пример проекта, содержащего архитектуру CRUD (или любую другую), которую вы хотите, то Простые строительные леса может быть полезным подходом.

Это единственный класс, который сканирует существующую базу кода и создает шаблоны, которые затем можно применять к другим объектам. Например, MongoUserDao можно превратить в шаблон, который затем генерирует, скажем, MongoCustomerDao. Он работает с любым кодом и тестовыми приборами.

Очень простой, но выполняет свою работу, и это FOSS под лицензией MIT.

Репозиторий GitHub находится здесь: https://github.com/gary-rowe/SimpleScaffolding

Взгляните на Минутопроект

И попробуйте это демонстрации.

Касательно технологий

Если вы ищете только ORM + DAO, попробуйте трек BSLA-JPA2 (BSLA означает базовую архитектуру уровня Spring). Он продвигает шаблон маски для облегчения поиска.

Если вы хотите, чтобы постоянство, ориентированное на активную запись, выглядело как JOOQ или Roo

Если вы хотите, чтобы сервлеты смотрели на минутапроект 4 Openxava или 4 Primefaces

Если вы хотите, чтобы портлеты смотрели на Строитель услуг Liferay, то минутный проект сгенерирует входные данные service.xml из вашей БД.

Что касается вашей модели

Если вы хотите, чтобы ваш код (java) следовал соглашению java, а не соглашению DB, используйте minuteproject. Имеются обогатительные фабрики, позволяющие:

  • Сущности пакета (таблица / представление)
  • Применить соглашения об именах сущностей / полей
  • Применяйте стереотипы / ограничения / проверки
  • получить отношения (one2many, many2one, many2many), если внешние ключи отсутствуют, например здесь
  • И многое другое

Это обогащение может применяться индивидуально в поле / объекте / пакете или глобально через соглашения (Итак, вы настраиваете свои собственные соглашения).

Я столкнулся с этим вопросом и попробовал много вариантов ответов. В итоге я нашел Lightadmin. Он не генерирует код CRUD, но обеспечивает приятный интерфейс для классов Entity с очень небольшим количеством кода. Чтобы сделать сущность User доступной через веб-интерфейс Lightadmin, требуется всего два изменения в файлах XML и затем класс UserAdministration:

public class UserAdministration extends AdministrationConfiguration<User> {
    /* empty */
}

Вы можете настроить имена полей (и, возможно, многое другое) в этом классе Administration, но я считаю его уже очень полезным без какой-либо дополнительной настройки. Руководство Начиная действительно показывает, насколько это просто. После этих простых шагов вы можете открыть интерфейс администратора через http://localhost:8080/TestApp/admin.

Используйте JHipster. Он построен на основе популярного переднего инструмента для строительных лесов «yeoman». Он не только генерирует ваш бэкэнд, включая контроллеры, dao, безопасность, управление пользователями, метрики системы и API, ведение журнала и т. д., Используя Spring Boot и Spring MVC 4, но также генерирует ваш интерфейс с использованием angular js. Вы также получаете такие вкусности, как grunt, karma и bower, полностью настроенные и готовые к использованию! Наряду с этим вы также получаете управление версиями базы данных!

Он также имеет подгенераторы для генерации сущностей домена, которые генерируют вашу java и соответствующий интерфейс для управления его данными.

Запуск полного веб-приложения занимает 10 минут.

JHipster хорош, но он много генерирует для вас, большая часть из них представляет собой тонны шаблонов, которые вам могут даже не понадобиться, а внесение изменений в сгенерированный код не совсем тривиально. Если вы хотите использовать Spring Boot, вам лучше написать свое приложение с нуля, что действительно легко с начинающими, и использовать Spring Data REST + Angular-HATEOAS + yeoman. На мой взгляд, полезно посмотреть, как несколько технологий должны работать вместе.

Cenobyte321 10.09.2015 00:22

Да ... JHipster действительно предоставляет много шаблонного кода, некоторые из них полезны, например, безопасность, ведение журнала, метрики, настройка angularjs, настройка grunt и т. д. почти всегда меняют пользовательский интерфейс, но код JS по-прежнему полезен. В целом, это хороший способ быстро начать работу, не тратя время на настройку. Я бы все равно пошел на это.

Varun Achar 12.09.2015 07:36

Кстати, новая версия JHipster разбивает материал на модули, поэтому вы можете использовать только то, что вам нужно. Это решит поднятую вами проблему.

Varun Achar 12.09.2015 07:37

В качестве альтернативы bootify.io может быть интересен, когда вам нужен простой код Spring Boot.

Thomas 23.03.2021 18:20

попробуйте Дженджи

Он генерирует CRUD и предоставляет вам серверную часть вместе с внешним интерфейсом с использованием таких спецификаций, как JPA, EJB, JSF framework, с использованием Primeface, безопасность Java, аутентификация, аудит, экспорт в Excel и PDF, управление пользователями, регистрация пользователей.

После этого вы можете скачать исходный код или развернуть на heroku. Я протестировал его, и он дал мне ожидаемые результаты

Другие вопросы по теме