Вопрос

Вот файл конфигурации для 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> 
Это было полезно?

Решение

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

  • hibernate.connection.driver_class: Класс драйвера JDBC
  • hibernate.connection.url: JDBC URL
  • 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 One. Класс драйвера и 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>

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

Другие советы

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
...

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

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

Проверено с помощью Hibernate 4

Не забудьте включить соединения TCP / IP в инструментах конфигурации SQL Server

Наконец это для 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>

Держите файлы JAR под Web-inf lib Infase, который вы включали JAR, и он не может идентифицировать.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top