Configurar tu aplicación OpenXava
6.x (o anterior) para ir contra MS SQL Server es muy simple, básicamente
has de instalar tu controlador JDBC para MS SQL Server y definir
correctamente la fuente de datos. No necesitas tocar nada de código de tu
aplicación.
Asumimos que ya tienes MS SQL
Server instalado y funcionando.
Descargar el controlador JDBC para MS SQL Server
Descarga el controlador para MS SQL Server desde aquí: https://docs.microsoft.com/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server
Descargarás un archivo como este:
sqljdbc_7.4.1.0_enu.exe (el
número de versión puede variar) que es un archivo autoextraible para
Windows o
sqljdbc_7.4.1.0_enu.tar.gz para Linux/Mac. Descomprímelo
para buscar dentro un archivo llamado
mssql-jdbc-7.4.1.jre8.jar (o
parecido), este último archivo, el .jar, es el controlador JDBC que vamos
a usar.
Crear una variable de classpath en Eclipse
Para poder conectar a MS SQL Server desde Eclipse vamos a declarar una
variable de classpath que apunte al controlador JDBC de MS SQL Server, así
lo podrás usar en cualquier proyecto que lo necesites con facilidad. Para
ello, en Eclipse ve a Window > Preferences > Java > Build
Path > Classpath Variables donde puedes añadir la nueva variable:
Puedes llamar a la variable
MSSQLSERVER_DRIVER o CONTROLADOR_MSSQLSERVER en lugar de DB_DRIVER si lo
prefieres. Path sería la ruta del controlador JDBC, en nuestro
caso la ruta del mssql-jdbc-7.4.1.jre8.jar que acabamos de
descargar.
Añadir la variable DB_DRIVER al proyecto Eclipse
En el proyecto en que vayas a usar MS SQL Server has de añadir la variable
que acabas de declarar. Pulsa con el botón derecho del ratón en tu
proyecto y selecciona
Build Path > Configure Build Path:
Después selecciona la pestaña Libraries:
Con esto tenemos el controlador
disponible en el entorno de desarrollo.
Añadir el controlador JDBC al Tomcat de producción
Añadir
el controlador en producción es mucho más fácil. Copia mssql-jdbc-7.4.1.jre8.jar
a la carpeta lib de tu Tomcat. Nada más.
Ajustar la definición de la base de datos
Para desarrollo edita web/META-INF/context.xml de tu proyecto
Eclipse y para producción edita conf/context.xml de tu Tomcat,
para ajustar la fuente de datos para que apunte a MS SQL Server, algo como
esto:
<Resource name="jdbc/MiAplicacionDS" auth="Container"
type="javax.sql.DataSource"
maxTotal="100" maxIdle="20" maxWaitMillis="10000"
username="root" password="ao49fmsk"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost:1433;databaseName=miaplicaciondb"/>
Las diferencias están en el driverClassName
y la url. La parte final de la url, miaplicaciondb
en este ejemplo, es el nombre de tu base de datos MS SQL Server.
Obviamente, en lugar de localhost deberías poner la dirección del
servidor donde está el MS SQL Server, y también poner los valores
correctos para username y password.
Actualizar persistence.xml
No necesitas tocar la unidad de persistencia
default de
persistence.xml
(en
persistence/META-INF), a no ser que uses la propiedad
hibernate.dialect
en cuyo caso lo más fácil es quitar la propiedad
hibernate.dialect.
Sin embargo, sí que has de modificar la unidad de persistencia
junit
para que apunte a MS SQL Server:
<!-- JUnit MS SQL Server -->
<persistence-unit name="junit">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<class>org.openxava.web.editors.DiscussionComment</class>
<properties>
<property name="hibernate.connection.driver_class" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.password" value="ao49fmsk"/>
<property name="hibernate.connection.url" value="jdbc:sqlserver://localhost:1433;databaseName=miaplicaciondb"/>
</properties>
</persistence-unit>
Adapta username, password
y url a la configuración de tu MS SQL Server.