para for cfg java sql-server hibernate orm hibernate.cfg.xml

java - for - persistence xml jpa sql server



cómo configurar el archivo de configuración de hibernación para el servidor sql (5)

Finalmente esto es para Hibernate 5 en Tomcat .

Recopilé todas las respuestas de las anteriores y agregué mis consejos, que funcionan 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>

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>

¿Qué 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 más precisa es cómo especificar la base de datos a la que me tengo que conectar.

En MySQL solía hacer esto:

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


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.1/INGESQL:1433;databaseName=datatest ...


Las propiedades que son específicas de la base de datos son:

  • hibernate.connection.driver_class : clase de controlador JDBC
  • hibernate.connection.url : JDBC URL
  • hibernate.connection.username : usuario de la base de datos
  • hibernate.connection.password : contraseña de la base de datos
  • hibernate.dialect : nombre de clase de Hibernate org.hibernate.dialect.Dialect que permite a Hibernate generar SQL optimizado para una base de datos relacional en particular.

Para cambiar la base de datos, debes hacer lo siguiente:

  1. Proporcione un controlador JDBC apropiado para la base de datos en la ruta de clases,
  2. Cambiar las propiedades JDBC ( controlador, url, usuario, contraseña )
  3. Cambiar el Dialect utilizado por Hibernate para hablar con la base de datos

Hay dos controladores para conectarse a SQL Server; el código abierto jTDS y el de Microsoft. La clase de controlador y la URL JDBC dependen de cuál use.

Con el controlador jTDS

El nombre de la clase del 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 sería similar (tenga en cuenta 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 clase del controlador es com.microsoft.sqlserver.jdbc.SQLServerDriver .

El formato de 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


No olvide habilitar las conexiones tcp / ip en las herramientas de configuración de SQL SERVER


También debemos mencionar el esquema predeterminado para SQSERVER: dbo

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

Probado con hibernate 4