it-swarm.com.de

so konfigurieren Sie die Hibernate-Konfigurationsdatei für den SQL-Server

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 ist für SQL Server 2005 anzugeben? Ich habe es so gemacht:

<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 ist genauer, wie Sie die Datenbank angeben, zu der ich eine Verbindung herstellen muss.

In MySQL habe ich folgendes gemacht: 

<property name="hibernate.connection.url">jdbc:mysql://localhost/test</property> 
38
Lalchand

Datenbankspezifisch sind folgende Eigenschaften:

  • hibernate.connection.driver_class: JDBC-Treiberklasse
  • hibernate.connection.url: JDBC-URL
  • hibernate.connection.username: Datenbankbenutzer
  • hibernate.connection.password: Datenbankkennwort
  • hibernate.dialect: Der Klassenname eines Hibernate org.hibernate.dialect.Dialect, mit dem Hibernate SQL generieren kann, die für eine bestimmte relationale Datenbank optimiert ist. 

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

  1. Stellen Sie einen geeigneten JDBC-Treiber für die Datenbank im Klassenpfad bereit. 
  2. Ändern Sie die JDBC-Eigenschaften (driver, URL, Benutzer, Kennwort).
  3. Ändern Sie die von Hibernate verwendete Dialect, um mit der Datenbank zu kommunizieren

Es gibt zwei Treiber, um eine Verbindung zu SQL Server herzustellen. das Open Source jTDS und das Microsoft. Die Treiberklasse und die JDBC-URL hängen davon ab, welche Sie verwenden.

Mit dem jTDS-Treiber

Der Name der Treiberklasse lautet net.sourceforge.jtds.jdbc.Driver.

Das URL-Format für sqlserver lautet:

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

Die Hibernate-Konfiguration würde also so aussehen (beachten Sie, dass Sie das hibernate.-Präfix in den Eigenschaften überspringen können):

<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 Name der Treiberklasse lautet com.Microsoft.sqlserver.jdbc.SQLServerDriver.

Das URL-Format lautet:

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

Die Hibernate-Konfiguration würde also so 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>

Verweise

88
Pascal Thivent

Die Verbindungs-URL sollte für SQL Server folgendermaßen aussehen:

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

Beispiele:

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

Wir müssen auch das Standardschema für SQSERVER: dbo erwähnen

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

Getestet mit Hibernate 4

5
rjha

Vergessen Sie nicht, TCP/IP-Verbindungen in den SQL SERVER-Konfigurationstools zu aktivieren

4
fguespe

Dies ist schließlich für Hibernate 5 in Tomcat

Alle Antworten aus dem obigen zusammengestellt und meine Tipps hinzugefügt, die für Hibernate 5 and SQL Server 2014 wie ein Zauber wirken.

<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>
1
Pritam Banerjee

Bewahren Sie die JAR-Dateien unter web-inf lib auf, wenn Sie jar mit einschließen und es nicht identifiziert werden kann.

Es hat in meinem Fall funktioniert, dass alles in Ordnung war, aber die Fahrerklasse nicht geladen werden konnte.

0
Arjun Das