|
|
|
Генератор кода
|
|||
|---|---|---|---|
|
#18+
Привет всем! Я тут в академических целей хочу написать что то вроде hibernate, но свой. И мне нужен механизм генерации классов(*.java) по метаданным из базы данных. Если ли какие библиотеки или фреймворки для генерации кода? или все пользуются StringBuilder и пишут код напрямую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2014, 10:00 |
|
||
|
Генератор кода
|
|||
|---|---|---|---|
|
#18+
Есть куча генераторов байт-кода. Asm, например популярный. BCEL даже встроен в JDK, но как публичный API, вроде не очень доступен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2014, 11:11 |
|
||
|
Генератор кода
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Мне не нужен байт код, мне нужны исходники. В jooq есть такой генератор, генерирует классы по таблицам, мне нужно что то типа такого. Сейчас вижу простой вариант, делать через StringBulder и просто сохранять в файл с расширением *.java. Возможно есть более продвинутый метод? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2014, 11:40 |
|
||
|
Генератор кода
|
|||
|---|---|---|---|
|
#18+
например, реверс в HibernateTools собирает исходники с помощью StringBuilder. Я бы, в свою очередь, посоветовал следующее: если база документирована с помощью какого-то case инструмента (например, erwin, power designer), то можно воспользоваться встроенными средствами кодогенерации. В хорошо документированной схеме, как правило, метаданных с избытком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2014, 11:54 |
|
||
|
Генератор кода
|
|||
|---|---|---|---|
|
#18+
ivanraнапример, erwin он хочет Java код. А эти IDE генерят SQL код ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2014, 12:56 |
|
||
|
Генератор кода
|
|||
|---|---|---|---|
|
#18+
Когда мне такое понадобилось, я использовал Freemarker. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2014, 13:15 |
|
||
|
Генератор кода
|
|||
|---|---|---|---|
|
#18+
Alexander A. SakКогда мне такое понадобилось, я использовал Freemarker. Freemarker же под HTML за точен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2014, 13:21 |
|
||
|
Генератор кода
|
|||
|---|---|---|---|
|
#18+
Petro123ivanraнапример, erwin он хочет Java код. А эти IDE генерят SQL код В erwin есть пре- пост- скрипт, в котором можно сгенерировать что угодно, хоть классы, хоть готовые формы. Кроме того, саму схему можно сохранить в xml формате, и обработать этот xml. По-моему, что-то подобное есть и в PD ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2014, 13:37 |
|
||
|
Генератор кода
|
|||
|---|---|---|---|
|
#18+
BlazkowiczAlexander A. SakКогда мне такое понадобилось, я использовал Freemarker. Freemarker же под HTML за точен. Да нет, не обязательно. http://freemarker.org/ FreeMarker is a "template engine"; a generic tool to generate text output (anything from HTML to autogenerated source code) based on templates. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2014, 13:50 |
|
||
|
Генератор кода
|
|||
|---|---|---|---|
|
#18+
Я имею ввиду что синтаксис у него XML/HTML-ный. http://freemarker.org/docs/dgui_template_overallstructure.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2014, 13:54 |
|
||
|
Генератор кода
|
|||
|---|---|---|---|
|
#18+
Ну и ладно. Первый вариант на конкатенациях строк был настолько страшен, что после него шаблоны Freemarker-а выглядят очень даже ничего. Тексты генерятся -- "а мне больше и не надо". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2014, 13:59 |
|
||
|
Генератор кода
|
|||
|---|---|---|---|
|
#18+
ivanraВ erwin есть пре- пост- скрипт, IMHO это не генератор, т.к. там нет поддержки Java синтаксиса. Или я не понял. Там что есть "Выбрать ЯП --> Delphi\Java\C#\VBA\Пайтон.. --> сгенерил класс"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2014, 14:32 |
|
||
|
Генератор кода
|
|||
|---|---|---|---|
|
#18+
Petro123ivanraВ erwin есть пре- пост- скрипт, IMHO это не генератор, т.к. там нет поддержки Java синтаксиса. Или я не понял. Там что есть "Выбрать ЯП --> Delphi\Java\C#\VBA\Пайтон.. --> сгенерил класс"? Нет, шаблоны надо писать самому, и это напоминает шаболоны для тех средств, которые приведены выше. Вот, например, шаблон, выполнение которого приводит к созданию набора классов в заранее созданном каталоге C:\Workspaces\generate\serialize Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. пример сгенерированного класса: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. Встроенный скриптовый язык позволяет вытащить практически все метаданные из схемы. Таким образом, достигается сколь угодно полное соответствие проектной документации и кода )). Идея, в общем, таже самая, что и в первоначальном вопросе, только не нужен словарь в базе данных: рисуем и вводим все метаданные в case, и работа зря не пропадает - на выходе имеем не только ddl, но и заготовку для приложения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2014, 15:11 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38586177&tid=2127505]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
44ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 311ms |

| 0 / 0 |
