How to Establish a JDBC Connection in Apache Tomcat (Windows)

Business web applications rely on databases. Therefore, you will probably be required to make a connection to your relational database during the development of a web application. Java accesses relational databases through JDBC (Java Database Connectivity). As of JDBC 2, the database is represented to Tomcat as a data source. In this topic I will discuss establishing a JDBC connection to a MySQL data source in Tomcat.

To learn how to establish a JDBC connection in Apache Tomcat, follow these four steps:

  1. I will present the steps using the MySQL database and sample web application we use in our Webucator Tomcat training. The database name is test and is used by the "Cool Garden Tools" web application. It contains one table, the GardenTools table. The JNDI (Java Naming and Directory Interface) name referenced in the web application is jdbc/gardentools.
  2. A resource entry is required in the Tomcat configuration. In my example, I have placed my resource element in CATALINA_BASE/conf/context.xml, e.g., c:/Tomcat8/conf/context.xml:
    <Resource name="jdbc/gardentools" auth="Container" type="javax.sql.DataSource"
                   maxTotal="25" maxIdle="5" maxWaitMillis="5000"
                   username="root" password="mypassword" driverClassName="com.mysql.jdbc.Driver"
    The name attribute value must match the name of the JNDI resource coded in the lookup method of a Context in the application code. The maxTotal, maxIdle and maxWaitMillis are parameters for Database Connection Pool (DBCP) and specify the total connections allowed for this resource, the maximum number of idle, or unused, connections and the maximum wait time in milliseconds before throwing an exception if all connections are in use (a value of -1 indicates that the wait time is infinite), respectively. Note that the url and driverClassName are specific to database vendor. For examples of Oracle and PostgreSQL visit the Tomcat documentation for JNDI
  3. Once you save context.xml, Tomcat will detect the updated file, and the resource will be available to your web application.
  4. As an example, here is the Cool Garden Tools welcome page displaying the tools from the GardenTools table:
    Cool Garden Tools welcome page
    The table displays the tool ID and description for each tool in the database.
Author: Stephen Withrow

Stephen has over 30 years of experience in training, development, and consulting in a variety of technology areas including Python, Java, C, C++, XML, JavaScript, Tomcat, JBoss, Oracle, and DB2. His background includes design and implementation of business solutions on client/server, Web, and enterprise platforms. Stephen has a degree in Computer Science and Physics from Florida State University.

About Webucator

Webucator provides instructor-led training to students throughout the US and Canada. We have trained over 90,000 students from over 16,000 organizations on technologies such as Microsoft ASP.NET, Microsoft Office, Azure, Windows, Java, Adobe, Python, SQL, JavaScript, Angular and much more. Check out our complete course catalog.