Solución:
Propiedades que son base de datos específica están:
-
hibernate.connection.driver_class
: Clase de controlador JDBC -
hibernate.connection.url
: URL de JDBC -
hibernate.connection.username
: usuario de la base de datos -
hibernate.connection.password
: contraseña de la base de datos -
hibernate.dialect
: El nombre de clase de un Hibernateorg.hibernate.dialect.Dialect
lo que permite a Hibernate generar SQL optimizado para una base de datos relacional en particular.
Para cambiar la base de datos, debe:
- Proporcione un controlador JDBC apropiado para la base de datos en la ruta de clases,
- Cambie las propiedades de JDBC (controlador, url, usuario, contraseña)
- Cambiar el
Dialect
utilizado por Hibernate para hablar con la base de datos
Hay dos controladores para conectarse a SQL Server; el jTDS de código abierto y el de Microsoft. La clase de controlador y la URL de JDBC dependen de cuál utilice.
Con el controlador jTDS
El nombre de la clase del conductor es net.sourceforge.jtds.jdbc.Driver
.
El formato de URL para sqlserver es:
jdbc:jtds:sqlserver://<server>[:<port>][/<database>][;<property>=<value>[;...]]
Entonces, la configuración de Hibernate se vería así (tenga en cuenta que puede omitir el hibernate.
prefijo 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 del conductor es com.microsoft.sqlserver.jdbc.SQLServerDriver
.
El formato de la URL es:
jdbc:sqlserver://[serverName[instanceName][:portNumber]][;property=value[;property=value]]
Entonces, 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
- Documentación de referencia de Hibernate Core
- 3.3. Conexiones JDBC
- 3.4. Propiedades de configuración opcionales
- Documentación jTDS
- Documentación de Microsoft SQL Server JDBC Driver 3.0
- Controlador JDBC 2.0 de Microsoft SQL Server
- Matriz de compatibilidad para el controlador JDBC de Microsoft SQL Server
La URL de conexión debería verse así para SQL Server:
jdbc:sqlserver://serverName[instanceName][:port][;databaseName=your_db_name]
Ejemplos:
jdbc:sqlserver://localhost
jdbc:sqlserver://127.0.0.1INGESQL:1433;databaseName=datatest
...
También debemos mencionar el esquema predeterminado para SQSERVER: dbo
<property name="hibernate.default_schema">dbo</property>
Probado con hibernate 4