как настроить файл конфигурации спящего режима для сервера sql

Вот файл конфигурации для 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> 

person Lalchand    schedule 27.08.2010    source источник
comment
Похоже, SQL Server hibernate.connection.driver_class имеет ошибку копирования/вставки? Значение в hibernate.connection.url должно быть в свойстве driver_class, а URL-адрес должен быть настраиваемым URL-адресом для базы данных SQL Server.   -  person rynmrtn    schedule 13.12.2011


Ответы (6)


Свойства, которые зависят от базы данных:

  • 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, оптимизированный для конкретной реляционной базы данных.

Для изменения базы данных необходимо:

  1. Укажите соответствующий драйвер JDBC для базы данных в пути к классам,
  2. Измените свойства JDBC (драйвер, URL-адрес, пользователь, пароль)
  3. Измените 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>

использованная литература

person Pascal Thivent    schedule 27.08.2010
comment
Спасибо, и так конкретно и блестяще. - person Jalal Sordo; 19.09.2013
comment
У меня были проблемы с 2012 и jTDS, но JDBC 4.0 заработал. stackoverflow.com/ вопросы/26404283/ - person lko; 16.10.2014
comment
В моем случае мне пришлось убедиться, что я использую правильный диалект для моего Microsoft SQL Server. Я использую org.hibernate.dialect.SQLServer2012Dialect вместо стандартного org.hibernate.dialect.SQLServerDialect, который, кажется, для Microsoft SQL Server 2000. Для 2005 года в файле persistence.xml я бы сделал <property name="hibernate.dialect" value="org.hibernate.dialect.SQLServer2005Dialect"/> - person Maxence; 11.07.2016

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
...
person KeatsPeeks    schedule 27.08.2010

Нам также нужно упомянуть схему по умолчанию для SQSERVER: dbo

<property name="hibernate.default_schema">dbo</property>

Протестировано с спящим режимом 4

person rjha    schedule 04.01.2015

Не забудьте включить соединения tcp/ip в инструментах конфигурации SQL SERVER.

person fguespe    schedule 02.06.2013

Наконец, это для 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>
person Pritam Banerjee    schedule 27.01.2016

Храните файлы jar в библиотеке web-inf, если вы включили jar, и он не может идентифицировать файлы .

Это сработало в моем случае, когда все было в порядке, но не удалось загрузить класс драйвера.

person Arjun Das    schedule 06.10.2018
comment
Из обзора: Этот пост, похоже, не дает качественный ответ на вопрос. Пожалуйста, либо отредактируйте свой ответ и улучшите его, либо просто опубликуйте его как комментарий к вопросу. - person sɐunıɔןɐqɐp; 06.10.2018