Frage

Hier ist die Konfigurationsdatei für 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>

Was für SQL Server 2005 angeben? Ich habe es wie folgt aus:

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

Meine Frage genauer ist, wie Sie die Datenbank angeben, dass ich eine Verbindung herstellen müssen?

In MySQL habe ich wie dies zu tun:

<property name="hibernate.connection.url">jdbc:mysql://localhost/test</property> 
War es hilfreich?

Lösung

Eigenschaften, die Datenbank spezifische sind:

  • hibernate.connection.driver_class: JDBC-Treiber Klasse
  • hibernate.connection.url: JDBC-URL
  • hibernate.connection.username: Datenbankbenutzer
  • hibernate.connection.password: Datenbank-Passwort
  • hibernate.dialect: Der Klassenname einer Hibernate org.hibernate.dialect.Dialect die Hibernate SQL für eine bestimmte relationale Datenbank optimiert generieren können.

Um die Datenbank zu ändern, müssen Sie:

  1. Geben Sie einen entsprechenden JDBC-Treiber für die Datenbank auf den Klassenpfad,
  2. Ändern Sie die JDBC-Eigenschaften ( Treiber, URL, Benutzer, Passwort )
  3. Ändern der Dialect verwendet von Hibernate-to-talk auf die Datenbank

Es gibt zwei Treiber für SQL Server zu verbinden; die Open-Source- jTDS und Microsoft ein. Die Treiberklasse und die JDBC-URL hängen von welchen Sie verwenden.

Mit dem jTDS Treiber

Der Fahrer Klassenname ist net.sourceforge.jtds.jdbc.Driver.

Das URL-Format für sqlserver ist:

 jdbc:jtds:sqlserver://<server>[:<port>][/<database>][;<property>=<value>[;...]]

So ist die Hibernate-Konfiguration würde wie (man beachte, dass Sie den hibernate. Präfix in den Eigenschaften überspringen können) aussehen:

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

Mit Microsoft SQL Server JDBC 3.0:

Der Fahrer Klassenname ist com.microsoft.sqlserver.jdbc.SQLServerDriver.

Das URL-Format ist:

jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]

So ist die Hibernate-Konfiguration würde wie folgt aussehen:

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

Referenzen

Andere Tipps

Die Verbindung URL, wie dies für SQL Server aussehen sollte:

jdbc:sqlserver://serverName[\instanceName][:port][;databaseName=your_db_name]

Beispiele:

jdbc:sqlserver://localhost
jdbc:sqlserver://127.0.0.1\INGESQL:1433;databaseName=datatest
...

Wir müssen auch erwähnen Standardschema für SQL SERVER: dbo

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

Getestet mit Hibernate 4

Vergessen Sie nicht aktivieren TCP / IP-Verbindungen in SQL Server-Konfigurations-Tool

Schließlich ist dies für Hibernate 5 in Tomcat.

Zusammengestellt alle Antworten von den oben und meine Tipps gegeben, die wie ein Zauber für Hibernate 5 and SQL Server 2014 funktioniert.

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

Halten Sie die JAR-Dateien unter Web-inf lib einhüllen Sie jar enthalten, und es ist zu erkennen nicht in der Lage.

Es funktionierte in meinem Fall, dass alles in Ordnung war, aber es war nicht in der Lage den Fahrer Klasse zu laden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top