cómo configurar el archivo de hibernación de configuración para el servidor SQL
-
01-10-2019 - |
Pregunta
Aquí está el archivo de configuración para 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>
Lo que hay que especificar para SQL Server 2005? Lo hice así:
<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>
Mi pregunta es más precisa de cómo especificar la base de datos que tengo que conectar?
En MySQL que solía hacer la siguiente manera:
<property name="hibernate.connection.url">jdbc:mysql://localhost/test</property>
Solución
Las propiedades que son base de datos específica son:
-
hibernate.connection.driver_class
: clase del controlador JDBC -
hibernate.connection.url
: JDBC URL -
hibernate.connection.username
: base de datos de usuario -
hibernate.connection.password
: contraseña de base de datos -
hibernate.dialect
: El nombre de clase de unorg.hibernate.dialect.Dialect
Hibernate que permite Hibernate para generar SQL optimizado para una base de datos relacional particular.
Para cambiar la base de datos, usted debe:
- Proporcionar un controlador JDBC apropiado para la base de datos en la ruta de clase,
- Cambiar las propiedades de JDBC ( conductor, url, usuario, contraseña )
- Cambiar el
Dialect
utilizado por Hibernate para hablar, en la base de datos
Hay dos controladores para conectarse a SQL Server; la fuente abierta jTDS y el Microsoft uno. La clase del controlador y la URL de JDBC dependen de cuál de ellos utilizar.
Con el controlador jTDS
El nombre de la clase controlador es net.sourceforge.jtds.jdbc.Driver
.
El formato de URL para sqlserver es:
jdbc:jtds:sqlserver://<server>[:<port>][/<database>][;<property>=<value>[;...]]
Así que la configuración de Hibernate se vería así (nota que puede omitir el prefijo hibernate.
en las propiedades):
<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:
El nombre de la clase controlador es com.microsoft.sqlserver.jdbc.SQLServerDriver
.
El formato de URL es:
jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]
Así que la configuración de Hibernate se vería así:
<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>
Referencias
Otros consejos
La dirección URL de conexión debe tener este aspecto para SQL Server:
jdbc:sqlserver://serverName[\instanceName][:port][;databaseName=your_db_name]
Ejemplos:
jdbc:sqlserver://localhost
jdbc:sqlserver://127.0.0.1\INGESQL:1433;databaseName=datatest
...
También necesita mención esquema predeterminado para el servidor SQL: DBO
<property name="hibernate.default_schema">dbo</property>
Probado con hibernación 4
No se olvide de permitir conexiones TCP / IP en las herramientas de configuración de SQL Server
Finalmente esto es para Hibernate 5
en Tomcat
.
Compilado todas las respuestas de lo anterior y añadió mis consejos, que funciona como un encanto para 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>
Mantener los archivos jar en lib-inf web en caso que se encontraban Jar y no es capaz de identificar.
Se trabajó en mi caso en el que todo estaba bien, pero no era capaz de cargar la clase controlador.