Drivers Tomcat

12/10/2021by admin

Tomcat DataSource JNDI Configuration Example – server.xml. Add below code in the tomcat server.xml file. The code should be added in the GlobalNamingResources element. Also make sure that database driver is present in the tomcat lib directory, so in this case mysql jdbc jar have to be present in the tomcat lib. Tomcat MySQL connection - Using JDBC to connect Tomcat to MySQL Stumped by Tomcat JDBC connections? Can't get your head around MySQL drivers, connection pools, and JNDI resources? This article will guide you step-by-step through connecting your MySQL database to Tomcat, in plain English.

  1. Driving To Catalina Island
  2. Drivers Tomcat Installer
  1. JDBC Drivers
JDBC Driver is a software component that enables java application to interact with the database. There are 4 types of JDBC drivers:
  1. JDBC-ODBC bridge driver
  2. Native-API driver (partially java driver)
  3. Network Protocol driver (fully java driver)
  4. Thin driver (fully java driver)

1) JDBC-ODBC bridge driver

The JDBC-ODBC bridge driver uses ODBC driver to connect to the database. The JDBC-ODBC bridge driver converts JDBC method calls into the ODBC function calls. This is now discouraged because of thin driver.

In Java 8, the JDBC-ODBC Bridge has been removed.

Oracle does not support the JDBC-ODBC Bridge from Java 8. Oracle recommends that you use JDBC drivers provided by the vendor of your database instead of the JDBC-ODBC Bridge.

Advantages:

  • easy to use.
  • can be easily connected to any database.

Disadvantages:

  • Performance degraded because JDBC method call is converted into the ODBC function calls.
  • The ODBC driver needs to be installed on the client machine.

Driving To Catalina Island

2) Native-API driver

The Native API driver uses the client-side libraries of the database. The driver converts JDBC method calls into native calls of the database API. It is not written entirely in java.

Advantage:

  • performance upgraded than JDBC-ODBC bridge driver.

Disadvantage:

  • The Native driver needs to be installed on the each client machine.
  • The Vendor client library needs to be installed on client machine.

3) Network Protocol driver

The Network Protocol driver uses middleware (application server) that converts JDBC calls directly or indirectly into the vendor-specific database protocol. It is fully written in java.

Advantage:

  • No client side library is required because of application server that can perform many tasks like auditing, load balancing, logging etc.

Disadvantages:

  • Network support is required on client machine.
  • Requires database-specific coding to be done in the middle tier.
  • Maintenance of Network Protocol driver becomes costly because it requires database-specific coding to be done in the middle tier.

4) Thin driver

The thin driver converts JDBC calls directly into the vendor-specific database protocol. That is why it is known as thin driver. It is fully written in Java language.

Advantage:

  • Better performance than all other drivers.
  • No software is required at client side or server side.

Disadvantage:

  • Drivers depend on the Database.
Next TopicSteps To Connect To The Database In Java

-->

This section provides quickstart instructions for making a simple connection to a SQL Server database by using the Microsoft JDBC Driver for SQL Server. Before you connect to a SQL Server database, SQL Server must first be installed on either your local computer or a server, and the JDBC driver must be installed on your local computer.

Choosing the right JAR file

The Microsoft JDBC Driver provides different Jars to be used in correspondence with your preferred Java Runtime Environment (JRE) settings, as under:

The Microsoft JDBC Driver 9.2 for SQL Server provides mssql-jdbc-9.2.0.jre8.jar, mssql-jdbc-9.2.0.jre11.jar, and mssql-jdbc-9.2.0.jre15.jar class library files.

The Microsoft JDBC Driver 8.4 for SQL Server provides mssql-jdbc-8.4.1.jre8.jar, mssql-jdbc-8.4.1.jre11.jar, and mssql-jdbc-8.4.1.jre14.jar class library files.

The Microsoft JDBC Driver 8.2 for SQL Server provides mssql-jdbc-8.2.2.jre8.jar, mssql-jdbc-8.2.2.jre11.jar, and mssql-jdbc-8.2.2.jre13.jar class library files.

The Microsoft JDBC Driver 7.4 for SQL Server provides mssql-jdbc-7.4.1.jre8.jar, mssql-jdbc-7.4.1.jre11.jar, and mssql-jdbc-7.4.1.jre12.jar class library files.

The Microsoft JDBC Driver 7.2 for SQL Server provides mssql-jdbc-7.2.2.jre8.jar, and mssql-jdbc-7.2.2.jre11.jar class library files.

The Microsoft JDBC Driver 7.0 for SQL Server provides mssql-jdbc-7.0.0.jre8.jar, and mssql-jdbc-7.0.0.jre10.jar class library files.

The Microsoft JDBC Driver 6.4 for SQL Server provides mssql-jdbc-6.4.0.jre7.jar, mssql-jdbc-6.4.0.jre8.jar, and mssql-jdbc-6.4.0.jre9.jar class library files.

The Microsoft JDBC Driver 6.2 for SQL Server provides mssql-jdbc-6.2.2.jre7.jar, and mssql-jdbc-6.2.2.jre8.jar class library files.

The Microsoft JDBC Drivers 6.0 and 4.2 for SQL Server provide sqljdbc41.jar, and sqljdbc42.jar class library files.

The Microsoft JDBC Driver 4.1 for SQL Server provides the sqljdbc41.jar class library file.

Your choice will also determine available features. For more information about which JAR file to choose, see System requirements for the JDBC driver.

Setting the classpath

The Microsoft JDBC driver jars are not part of the Java SDK and must be included in Classpath of user application.

If using JDBC Driver 4.1 or 4.2, set the classpath to include sqljdbc41.jar or sqljdbc42.jar file from respective driver download.

If using JDBC Driver 6.2, set the classpath to include the mssql-jdbc-6.2.2.jre7.jar or mssql-jdbc-6.2.2.jre8.jar.

If using JDBC Driver 6.4, set the classpath to include the mssql-jdbc-6.4.0.jre7.jar, mssql-jdbc-6.4.0.jre8.jar, or mssql-jdbc-6.4.0.jre9.jar.

If using JDBC Driver 7.0, set the classpath to include the mssql-jdbc-7.0.0.jre8.jar or mssql-jdbc-7.0.0.jre10.jar.

Drivers tomcat training

If using JDBC Driver 7.2, set the classpath to include the mssql-jdbc-7.2.2.jre8.jar or mssql-jdbc-7.2.2.jre11.jar.

If using JDBC Driver 7.4, set the classpath to include the mssql-jdbc-7.4.1.jre8.jar, mssql-jdbc-7.4.1.jre11.jar, or mssql-jdbc-7.4.1.jre12.jar.

If using JDBC Driver 8.2, set the classpath to include the mssql-jdbc-8.2.2.jre8.jar, mssql-jdbc-8.2.2.jre11.jar, or mssql-jdbc-8.2.2.jre13.jar.

If using JDBC Driver 8.4, set the classpath to include the mssql-jdbc-8.4.1.jre8.jar, mssql-jdbc-8.4.1.jre11.jar, or mssql-jdbc-8.4.1.jre14.jar.

If using JDBC Driver 9.2, set the classpath to include the mssql-jdbc-9.2.0.jre8.jar, mssql-jdbc-9.2.0.jre11.jar, or mssql-jdbc-9.2.0.jre15.jar.

If the classpath is missing an entry for the right Jar file, an application will throw the common Class not found exception.

For Microsoft JDBC Driver 9.2

The mssql-jdbc-9.2.0.jre8.jar, mssql-jdbc-9.2.0.jre11.jar, or mssql-jdbc-9.2.0.jre15.jar files are installed in the following locations:

The following snippet is an example of the CLASSPATH statement that is used for a Windows application:

CLASSPATH =.;C:Program FilesMicrosoft JDBC Driver 9.2 for SQL Serversqljdbc_9.2enumssql-jdbc-9.2.0.jre11.jar

The following snippet is an example of the CLASSPATH statement that is used for a Unix/Linux application:

CLASSPATH =.:/home/usr1/mssqlserverjdbc/Driver/sqljdbc_9.2/enu/mssql-jdbc-9.2.0.jre11.jar

Make sure that the CLASSPATH statement contains only one Microsoft JDBC Driver for SQL Server, such as either mssql-jdbc-9.2.0.jre8.jar, mssql-jdbc-9.2.0.jre11.jar, or mssql-jdbc-9.2.0.jre15.jar.

For Microsoft JDBC Driver 8.4

Drivers

The mssql-jdbc-8.4.1.jre8.jar, mssql-jdbc-8.4.1.jre11.jar, or mssql-jdbc-8.4.1.jre14.jar files are installed in the following locations:

The following snippet is an example of the CLASSPATH statement that is used for a Windows application:

CLASSPATH =.;C:Program FilesMicrosoft JDBC Driver 8.4 for SQL Serversqljdbc_8.4enumssql-jdbc-8.4.1.jre11.jar

The following snippet is an example of the CLASSPATH statement that is used for a Unix/Linux application:

CLASSPATH =.:/home/usr1/mssqlserverjdbc/Driver/sqljdbc_8.4/enu/mssql-jdbc-8.4.1.jre11.jar

Make sure that the CLASSPATH statement contains only one Microsoft JDBC Driver for SQL Server, such as either mssql-jdbc-8.4.1.jre8.jar, mssql-jdbc-8.4.1.jre11.jar, or mssql-jdbc-8.4.1.jre14.jar.

For Microsoft JDBC Driver 8.2

The mssql-jdbc-8.2.2.jre8.jar, mssql-jdbc-8.2.2.jre11.jar, or mssql-jdbc-8.2.2.jre13.jar files are installed in the following locations:

The following snippet is an example of the CLASSPATH statement that is used for a Windows application:

CLASSPATH =.;C:Program FilesMicrosoft JDBC Driver 8.2 for SQL Serversqljdbc_8.2enumssql-jdbc-8.2.2.jre11.jar

The following snippet is an example of the CLASSPATH statement that is used for a Unix/Linux application:

CLASSPATH =.:/home/usr1/mssqlserverjdbc/Driver/sqljdbc_8.2/enu/mssql-jdbc-8.2.2.jre11.jar

Make sure that the CLASSPATH statement contains only one Microsoft JDBC Driver for SQL Server, such as either mssql-jdbc-8.2.2.jre8.jar, mssql-jdbc-8.2.2.jre11.jar, or mssql-jdbc-8.2.2.jre13.jar.

For Microsoft JDBC Driver 7.4

The mssql-jdbc-7.4.1.jre8.jar, mssql-jdbc-7.4.1.jre11.jar, or mssql-jdbc-7.4.1.jre12.jar files are installed in the following locations:

The following snippet is an example of the CLASSPATH statement that is used for a Windows application:

CLASSPATH =.;C:Program FilesMicrosoft JDBC Driver 7.4 for SQL Serversqljdbc_7.4enumssql-jdbc-7.4.1.jre11.jar

The following snippet is an example of the CLASSPATH statement that is used for a Unix/Linux application:

CLASSPATH =.:/home/usr1/mssqlserverjdbc/Driver/sqljdbc_7.4/enu/mssql-jdbc-7.4.1.jre11.jar

Make sure that the CLASSPATH statement contains only one Microsoft JDBC Driver for SQL Server, such as either mssql-jdbc-7.4.1.jre8.jar, mssql-jdbc-7.4.1.jre11.jar, or mssql-jdbc-7.4.1.jre12.jar.

For Microsoft JDBC Driver 7.2

The mssql-jdbc-7.2.2.jre8.jar or mssql-jdbc-7.2.2.jre11.jar files are installed in the following locations:

The following snippet is an example of the CLASSPATH statement that is used for a Windows application:

CLASSPATH =.;C:Program FilesMicrosoft JDBC Driver 7.2 for SQL Serversqljdbc_7.2enumssql-jdbc-7.2.2.jre11.jar

The following snippet is an example of the CLASSPATH statement that is used for a Unix/Linux application:

Drivers Tomcat

CLASSPATH =.:/home/usr1/mssqlserverjdbc/Driver/sqljdbc_7.2/enu/mssql-jdbc-7.2.2.jre11.jar

Make sure that the CLASSPATH statement contains only one Microsoft JDBC Driver for SQL Server, such as either mssql-jdbc-7.2.2.jre8.jar or mssql-jdbc-7.2.2.jre11.jar.

For Microsoft JDBC Driver 7.0

The mssql-jdbc-7.0.0.jre8.jar or mssql-jdbc-7.0.0.jre10.jar files are installed in the following locations:

The following snippet is an example of the CLASSPATH statement that is used for a Windows application:

CLASSPATH =.;C:Program FilesMicrosoft JDBC Driver 7.0 for SQL Serversqljdbc_7.0enumssql-jdbc-7.0.0.jre10.jar

The following snippet is an example of the CLASSPATH statement that is used for a Unix/Linux application:

CLASSPATH =.:/home/usr1/mssqlserverjdbc/Driver/sqljdbc_7.0/enu/mssql-jdbc-7.0.0.jre10.jar

Make sure that the CLASSPATH statement contains only one Microsoft JDBC Driver for SQL Server, such as either mssql-jdbc-7.0.0.jre8.jar or mssql-jdbc-7.0.0.jre10.jar.

Drivers tomcat training

For Microsoft JDBC Driver 6.4

The mssql-jdbc-6.4.0.jre7.jar, **mssql-jdbc-6.4.0.jre8.jar, or mssql-jdbc-6.4.0.jre9.jar files are installed in the following location:

The following snippet is an example of the CLASSPATH statement that is used for a Windows application:

CLASSPATH =.;C:Program FilesMicrosoft JDBC Driver 6.4 for SQL Serversqljdbc_6.4enumssql-jdbc-6.4.0.jre9.jar

The following snippet is an example of the CLASSPATH statement that is used for a Unix/Linux application:

CLASSPATH =.:/home/usr1/mssqlserverjdbc/Driver/sqljdbc_6.4/enu/mssql-jdbc-6.4.0.jre9.jar

Make sure that the CLASSPATH statement contains only one Microsoft JDBC Driver for SQL Server, such as either mssql-jdbc-6.4.0.jre7.jar, **mssql-jdbc-6.4.0.jre8.jar, or mssql-jdbc-6.4.0.jre9.jar.

For Microsoft JDBC Driver 6.2

The mssql-jdbc-6.2.2.jre7.jar or mssql-jdbc-6.2.2.jre8.jar files are installed in the following locations:

The following snippet is an example of the CLASSPATH statement that is used for a Windows application:

CLASSPATH =.;C:Program FilesMicrosoft JDBC Driver 6.2 for SQL Serversqljdbc_6.2enumssql-jdbc-6.2.2.jre8.jar

The following snippet is an example of the CLASSPATH statement that is used for a Unix/Linux application:

CLASSPATH =.:/home/usr1/mssqlserverjdbc/Driver/sqljdbc_6.2/enu/mssql-jdbc-6.2.2.jre8.jar

Make sure that the CLASSPATH statement contains only one Microsoft JDBC Driver for SQL Server, such as either mssql-jdbc-6.2.2.jre7.jar or mssql-jdbc-6.2.2.jre8.jar.

For Microsoft JDBC Driver 4.1, 4.2, and 6.0

The sqljdbc.jar file, sqljdbc4.jar file, sqljdbc41.jar, or sqljdbc42.jar file are installed in the following location:

The following snippet is an example of the CLASSPATH statement that is used for a Windows application:

CLASSPATH =.;C:Program FilesMicrosoft JDBC Driver 6.0 for SQL Serversqljdbc_4.2enusqljdbc42.jar

The following snippet is an example of the CLASSPATH statement that is used for a Unix/Linux application:

CLASSPATH =.:/home/usr1/mssqlserverjdbc/Driver/sqljdbc_4.2/enu/sqljdbc42.jar

Make sure that the CLASSPATH statement contains only one Microsoft JDBC Driver for SQL Server, such as either sqljdbc.jar, sqljdbc4.jar, sqljdbc41.jar, or sqljdbc42.jar.

Note

On Windows systems, directory names longer than the 8.3 filename convention or folder names with spaces may cause problems with classpaths. If you suspect these types of issues, you should temporarily move the sqljdbc.jar file, sqljdbc4.jar file, or the sqljdbc41.jar file into a simple directory name such as C:Temp, change the classpath, and determine whether that addresses the problem.

Applications that are run directly at the command prompt

Drivers Tomcat Installer

The classpath is configured in the operating system. Append sqljdbc.jar, sqljdbc4.jar, or sqljdbc41.jar to the classpath of the system. Alternatively, you can specify the classpath on the Java command line that runs the application by using the java -classpath option.

Applications that run in an IDE

Each IDE vendor provides a different method for setting the classpath in its IDE. Just setting the classpath in the operating system will not work. You must add sqljdbc.jar, sqljdbc4.jar, or sqljdbc41.jar to the IDE classpath.

Servlets and JSPs

Servlets and JSPs are run in a servlet/JSP engine such as Tomcat. The classpath must be set according to the servlet/JSP engine documentation. Just setting the classpath in the operating system will not work. Some servlet/JSP engines provide setup screens that you can use to set the classpath of the engine. In that situation, you must append the correct JDBC Driver JAR file to the existing engine classpath and restart the engine. In other situations, you can deploy the driver by copying sqljdbc.jar, sqljdbc4.jar, or sqljdbc41.jar to a specific directory, such as lib, during engine installation. The engine driver classpath can also be specified in an engine-specific configuration file.

Enterprise Java Beans

Enterprise Java Beans (EJB) are run in an EJB container. EJB containers are sourced from various vendors. Java applets run in a browser but are downloaded from a web server. Copy sqljdbc.jar, sqljdbc4.jar, or sqljdbc41.jar to the web server root and specify the name of the JAR file in the HTML archive tab of the applet, for example, <applet ... archive=mssql-jdbc-***.jar>.

Making a simple connection to a database

Using the sqljdbc.jar class library, applications must first register the driver as follows:

Class.forName('com.microsoft.sqlserver.jdbc.SQLServerDriver');

When the driver is loaded, you can establish a connection by using a connection URL and the getConnection method of the DriverManager class:

Starting from JDBC API 4.0, the DriverManager.getConnection() method is enhanced to load JDBC drivers automatically. Therefore, applications do not need to call the Class.forName method to register or load the driver when using driver jar libraries.

When the getConnection method of the DriverManager class is called, an appropriate driver is located from the set of registered JDBC drivers. sqljdbc4.jar, sqljdbc41.jar, or sqljdbc42.jar file includes 'META-INF/services/java.sql.Driver' file, which contains the com.microsoft.sqlserver.jdbc.SQLServerDriver as a registered driver. The existing applications, which currently load the drivers by using the Class.forName method, will continue to work without modification.

Note

Installer

sqljdbc4.jar, sqljdbc41.jar, or sqljdbc42.jar class library cannot be used with older versions of the Java Runtime Environment (JRE). See System requirements for the JDBC driver for the list of JRE versions supported by the Microsoft JDBC Driver for SQL Server.

For more information about how to connect with data sources and use a connection URL, see Building the connection URL and Setting the connection properties.

See also

Comments are closed.