Zum Konfigurieren von Hibernate-Konfigurationsdatei für SQL Server
-
01-10-2019 - |
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>
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 Hibernateorg.hibernate.dialect.Dialect
die Hibernate SQL für eine bestimmte relationale Datenbank optimiert generieren können.
Um die Datenbank zu ändern, müssen Sie:
- Geben Sie einen entsprechenden JDBC-Treiber für die Datenbank auf den Klassenpfad,
- Ändern Sie die JDBC-Eigenschaften ( Treiber, URL, Benutzer, Passwort )
- Ä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.