Как настроить конфигурационный файл hibernate для SQL Server
Вот файл конфигурации для MySQL:
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">zgy01</property>
<property name="hibernate.connection.pool_size">100</property>
<property name="show_sql">false</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- Mapping files -->
<mapping resource="model.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Что указать для SQL Server 2005? Я сделал это так:
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>
<property name="hibernate.connection.url">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password">lal</property>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name="hibernate.connection.pool_size">100</property>
<property name="show_sql">false</property>
<!-- Mapping files -->
<mapping resource="model.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Мой вопрос более точно - как указать базу данных, к которой я должен подключиться?
В MySQL я делал так:
<property name="hibernate.connection.url">jdbc:mysql://localhost/test</property>
Ответы
Ответ 1
Свойства, специфичные для базы данных:
-
hibernate.connection.driver_class
: класс драйвера JDBC
-
hibernate.connection.url
: URL JDBC
-
hibernate.connection.username
: пользователь базы данных
-
hibernate.connection.password
: пароль базы данных
-
hibernate.dialect
: Имя класса Hibernate org.hibernate.dialect.Dialect
, которое позволяет Hibernate генерировать SQL, оптимизированный для конкретной реляционной базы данных.
Чтобы изменить базу данных, вы должны:
- Предоставьте соответствующий драйвер JDBC для базы данных по пути класса,
- Измените свойства JDBC (драйвер, URL, пользователь, пароль)
- Измените
Dialect
, используемый Hibernate, чтобы поговорить с базой данных
Есть два драйвера для подключения к SQL Server; с открытым исходным кодом jTDS и Microsoft. Класс драйвера и URL-адрес JDBC зависят от того, какой из них вы используете.
С драйвером jTDS
Имя класса драйвера net.sourceforge.jtds.jdbc.Driver
.
Формат URL для sqlserver:
jdbc:jtds:sqlserver://<server>[:<port>][/<database>][;<property>=<value>[;...]]
Итак, конфигурация Hibernate будет выглядеть (обратите внимание, что вы можете пропустить префикс hibernate.
в свойствах):
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>
<property name="connection.url">jdbc:jtds:sqlserver://<server>[:<port>][/<database>]</property>
<property name="connection.username">sa</property>
<property name="connection.password">lal</property>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
...
</session-factory>
</hibernate-configuration>
С Microsoft SQL Server JDBC 3.0:
Имя класса драйвера com.microsoft.sqlserver.jdbc.SQLServerDriver
.
Формат URL:
jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
Итак, конфигурация Hibernate будет выглядеть так:
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<property name="connection.url">jdbc:sqlserver://[serverName[\instanceName][:portNumber]];databaseName=<databaseName></property>
<property name="connection.username">sa</property>
<property name="connection.password">lal</property>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
...
</session-factory>
</hibernate-configuration>
Ссылки
Ответ 2
URL-адрес подключения должен выглядеть так: SQL Server:
jdbc:sqlserver://serverName[\instanceName][:port][;databaseName=your_db_name]
Примеры:
jdbc:sqlserver://localhost
jdbc:sqlserver://127.0.0.1\INGESQL:1433;databaseName=datatest
...
Ответ 3
Нам также нужно указать схему по умолчанию для SQSERVER: dbo
<property name="hibernate.default_schema">dbo</property>
Протестировано спящим 4
Ответ 4
Не забудьте включить подключения tcp/ip в инструментах конфигурации SQL SERVER
Ответ 5
Наконец, это для Hibernate 5
в Tomcat
.
Скомпилировал все ответы из вышеизложенного и добавил мои подсказки, которые работают как шарм для Hibernate 5 and SQL Server 2014
.
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</property>
<property name="hibernate.connection.driver_class">
com.microsoft.sqlserver.jdbc.SQLServerDriver
</property>
<property name="hibernate.connection.url">
jdbc:sqlserver://localhost\ServerInstanceOrServerName:1433;databaseName=DATABASE_NAME
</property>
<property name="hibernate.default_schema">theSchemaNameUsuallydbo</property>
<property name="hibernate.connection.username">
YourUsername
</property>
<property name="hibernate.connection.password">
YourPasswordForMSSQL
</property>
Ответ 6
Храните файлы jar в папке web-inf lib, если вы включили jar, и он не сможет их идентифицировать.
Это сработало в моем случае, когда все было в порядке, но он не смог загрузить класс драйвера.