|
|
|
Hibernate, persistence.xml, изменение url, username и password в рантайме
|
|||
|---|---|---|---|
|
#18+
Пишу приложение на свинге, чтобы не ковыряться с БД, решил использовать хибер только лишь для маппинга. При запуске первоначально открывается окно, с полями для ввода урла, юзернейма и пассворда. После нажатия на кнопку "Проверить и сохранить", данные сгребаются в файл и кладутся в создаваемую папку в папке пользователя. При следующем запуске данные уже заполнены если файл найден, прочитан и т.д. Ну а на вкладке "Вход в систему", в зависимости от полученного коннекта в комбобокс вываливается список пользователей из БД и можно далее работать уже непосредственно с программой. По идее, если бы приложение было полностью написано, проверено, протестировано пользователями и не надо было бы его дописывать, то проблем нет. Но даже если так, то, если поменяется урл, не хотелось бы его переписывать в persistence.xml, а поменять данные коннекта при запуске, тем более что сама программа пакуется в exe файл. Прочитал, что можно создать файл конфигурации hibernate.cfg.xml а в persistence.xml прописать <property name="hibernate.ejb.cfgfile" value="/hibernate.cfg.xml"/> Но не могу найти пример такого файла и не уверен, что путь вообще верен. Кроме того, его нужно будет генерировать, и это тоже вызывает вопрос - чем? :) Заранее спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2015, 10:33 |
|
||
|
Hibernate, persistence.xml, изменение url, username и password в рантайме
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2015, 10:34 |
|
||
|
Hibernate, persistence.xml, изменение url, username и password в рантайме
|
|||
|---|---|---|---|
|
#18+
В хибернейте используют объект Configuration: Код: java 1. 2. 3. 4. 5. 6. 7. Но поскольку речь идет только о коннекте, я бы смотрел в сторону использования datasource и его настройки в рантайме из отдельного ресурса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2015, 10:57 |
|
||
|
Hibernate, persistence.xml, изменение url, username и password в рантайме
|
|||
|---|---|---|---|
|
#18+
ivanra, datasource как раз и используется в дальнейшем, хиберней только для того, чтобы автоматом создались поля и/или таблицы в БД. Он инициализируется при нажатии кнопки проверки, чтобы не лезть в БД напрямую, меняет все что нужно, а дальше работает datasource. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2015, 11:13 |
|
||
|
Hibernate, persistence.xml, изменение url, username и password в рантайме
|
|||
|---|---|---|---|
|
#18+
Вроде как сделал, нашел пример: Код: 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. 48. 49. 50. Это уже с моими добавленными параметрами. В итоге просто дергаем сессию в каком-нибудь классе getSession(); а в Код: java 1. 2. 3. 4. 5. 6. в .addAnnotatedClass(...) добавляем классы для "проверки" Думаю, что как обычно, решение моё не особо правильное, может как-то по другому можно то же самое сделать, более красиво и коротко? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2015, 12:18 |
|
||
|
Hibernate, persistence.xml, изменение url, username и password в рантайме
|
|||
|---|---|---|---|
|
#18+
Правильное - когда выносится переменная часть. Почему я и написал о datasource. Если надо управлять только коннектом, то в исходном конфиге заменяем hibernate.connection.url, hibernate.connection.username, hibernate.connection.password на -> hibernate.connection.datasource А в рантайме управляем этим datasource, совсем в другом месте. Но если текущее решение подходит, то и так сойдет )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2015, 12:43 |
|
||
|
Hibernate, persistence.xml, изменение url, username и password в рантайме
|
|||
|---|---|---|---|
|
#18+
ivanra, спасибо! перепишу немного пример, добавлю переменные. А вот с hibernate.connection.datasource, посмотрел немного примеров, не понял что ему в значение подставлять, так что, пока оставлю без него :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2015, 12:56 |
|
||
|
Hibernate, persistence.xml, изменение url, username и password в рантайме
|
|||
|---|---|---|---|
|
#18+
1. чтобы не ковыряться с хибер - попробуйте spring data jpa ( http://docs.spring.io/spring-data/jpa/docs/1.5.x/reference/html/repositories.html ) 2.возьмите spring javaconfig 3. файл настроек вынести в ресурсы и указать в коде @PropertySource - указать мето где лежит файл с Property Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. примеров много : https://github.com/spring-projects/spring-data-jpa-examples ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2015, 18:02 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39003843&tid=2125184]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
169ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 525ms |

| 0 / 0 |
