Come configurare Hibernate configurazione di file per sql server
-
01-10-2019 - |
Domanda
Ecco il file di configurazione per 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>
Cosa specificare per SQL Server 2005? L'ho fatto in questo modo:
<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>
La mia domanda è più precisamente come specificare il database che ho per la connessione a?
In MySQL ho usato per fare in questo modo:
<property name="hibernate.connection.url">jdbc:mysql://localhost/test</property>
Soluzione
Proprietà che sono database specifico sono:
-
hibernate.connection.driver_class
: JDBC classe del driver -
hibernate.connection.url
: JDBC URL -
hibernate.connection.username
: utente del database -
hibernate.connection.password
: password del database -
hibernate.dialect
: Il nome della classe di unorg.hibernate.dialect.Dialect
Hibernate, che permette di generare Hibernate SQL ottimizzato per un particolare database relazionale.
Per modificare il database, è necessario:
- Fornire un driver JDBC appropriato per il database sul percorso delle classi,
- Modificare le proprietà JDBC ( conducente, url, utente, password )
- Cambia la
Dialect
usato da Hibernate per parlare con il database
Ci sono due driver per connettersi a SQL Server; l'open source jTDS e Microsoft uno. La classe del driver JDBC e l'URL dipendono da quale quella che si usa.
Con il driver jTDS
Il nome della classe del driver è net.sourceforge.jtds.jdbc.Driver
.
Il formato URL per SQLServer è:
jdbc:jtds:sqlserver://<server>[:<port>][/<database>][;<property>=<value>[;...]]
Quindi, la configurazione di Hibernate sarebbe simile (si noti che si può saltare il prefisso hibernate.
nelle proprietà):
<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>
Con Microsoft SQL Server JDBC 3.0:
Il nome della classe del driver è com.microsoft.sqlserver.jdbc.SQLServerDriver
.
Il formato URL è:
jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
Quindi, la configurazione di Hibernate sarà simile:
<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>
Bibliografia
Altri suggerimenti
L'URL di collegamento dovrebbe essere simile a questo per SQL Server:
jdbc:sqlserver://serverName[\instanceName][:port][;databaseName=your_db_name]
Esempi:
jdbc:sqlserver://localhost
jdbc:sqlserver://127.0.0.1\INGESQL:1433;databaseName=datatest
...
Abbiamo anche bisogno di schema predefinito menzione per SQL SERVER: dbo
<property name="hibernate.default_schema">dbo</property>
Testato con Hibernate 4
Non dimenticare di abilitare connessioni TCP / IP in strumenti di SQL Server Configuration
Infine, questa è per Hibernate 5
in Tomcat
.
Compiled tutte le risposte di cui sopra e ha aggiunto i miei consigli che funziona come un fascino per 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>
Mantenere i file jar sotto WEB-INF lib in caso si incluso vaso e non è in grado di identificare.
Ha funzionato nel mio caso dove tutto era ok, ma non è stato in grado di caricare la classe del driver.