Hibernate против JDBC для динамического подключения к базе данных - PullRequest
0 голосов
/ 03 июля 2019

У меня есть требование запуска SQL для базы данных, которая будет выбрана пользователем, около 10K баз данных, и строка подключения хранится в другой базе данных, например, в базе данных хоста.

Требование к 1. Подключитесь к базе данных хоста (Hibernate работает отлично) 2. Возьмите строку подключения от # 1 3. Запустите SQL для новой строки подключения 4. Отключите новую подключенную базу данных.

Hibernate используется для # 1, который работает нормально, а также для вызова # 3 мы используем следующие

SessionFactory sessionFactory = transactionInitImpl.createSessionFactory(dbUrl, dbUsername, dbPassword, sessionType);

Используя эту сессионную фабрику, мы можем запустить SQL, сохранив размер пула соединений до 1. Это работает, но я чувствую себя медленно.

Будет ли использование родного способа соединения (соединение / оператор / результирующий набор) быстрым, или оно будет таким же, или есть какой-либо другой хороший способ выполнить это?

1 Ответ

0 голосов
/ 03 июля 2019

Hibernate - это более высокий уровень абстракции, основанный на JDBC.Это позволяет работать с сущностями Java вместо таблиц.Таким образом, вы можете использовать больше объектно-ориентированного кода и меньше полагаться на низкоуровневые SQL-запросы.Кроме того, он предоставляет множество полезных функций, таких как интеллектуальное кэширование, встроенная поддержка транзакций и т. Д.

Если вам нужно выполнить простые запросы SQL, Hibernate для вас излишен.Используйте JDBC, поскольку он всегда быстрее.

...