openxava / documentation
/ Configuration for Microsoft SQL Server
Configuring your OpenXava application to go against MS SQL Server is very
simple, basically you have to install the JDBC driver for MS SQL Server
and define correctly the datasource. You don't need to touch any code of
your application.
We assume you have already
installed and running MS SQL Server.
Download the JDBC driver for MS SQL Server
Download the MS SQL Server driver from here: https://docs.microsoft.com/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server
You will download a file like this:
sqljdbc_7.4.1.0_enu.exe (the
version numbers may vary) that is a self-extracting file for Windows or
sqljdbc_7.4.1.0_enu.tar.gz
for Linux/Mac. Uncompress it to find inside a file called
mssql-jdbc-7.4.1.jre8.jar
(or so), this last file, the .jar, is the JDBC controller we're going to
use.
Create a classpath variable in Eclipse
In order you can connect to MS SQL Server from Eclipse we're going to
declare a classpath variable that points to the MS SQL Server JDBC driver,
so you can use it in any project you need easily. For that, in Eclipse go
to Window > Preferences > Java > Build Path > Classpath
Variables where you can add the new variable:
You can call the variable
MSSQLSERVER_DRIVER instead of DB_DRIVER if your prefer. The path is the
path of the JDBC driver, in our case the path of mssql-jdbc-7.4.1.jre8.jar
we have just downloaded.
Add the DB_DRIVER variable to your Eclipse project
In the project you're going to use MS SQL Server you have to add the
variable declared above. Click with right mouse button on your project and
then choose
Java Build Path > Configure Build Path...:
Then select the Libraries
tab:
With this we have the driver
available for the development environment.
Add the JDBC driver to the production Tomcat
Adding
the driver in production is much easier. Copy mssql-jdbc-7.4.1.jre8.jar
to the lib folder of your Tomcat. Done.
Adjust your datasource definition
For development edit web/META-INF/context.xml of your Eclipse
project, and for production edit conf/context.xml of your Tomcat
to adjust the datasource to point to MS SQL Server, something like this:
<Resource name="jdbc/MyAppDS" 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=myappdb"/>
The differences are the driverClassName
and the url. The final part of the url, myappdb in
this example, is the name of your MS SQL Server database. Obviously,
instead of localhost you should put the address of the server that
hosts MS SQL Server, and also put the correct username and password.
Update persistence.xml
You don't need to touch the
default persistence unit of
persistence.xml
(in
persistence/META-INF), unless you use
hibernate.dialect
property in which case just remove
hibernate.dialect property.
However, you have to modify the
junit persistence unit to point to
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=myappdb"/>
</properties>
</persistence-unit>
Adapt the username, password
and url to your MS SQL Server configuration.