TransactionConnectionServlet.java Source code

Java tutorial

Introduction

Here is the source code for TransactionConnectionServlet.java

Source

/*
Java Programming with Oracle JDBC
by Donald Bales 
ISBN: 059600088X
Publisher: O'Reilly
*/

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.UnavailableException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class TransactionConnectionServlet extends HttpServlet {

    public void init(ServletConfig config) throws ServletException {
        super.init(config);
        try {
            // load the driver
            Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
        } catch (ClassNotFoundException e) {
            throw new UnavailableException(
                    "TransactionConnection.init() ClassNotFoundException: " + e.getMessage());
        } catch (IllegalAccessException e) {
            throw new UnavailableException(
                    "TransactionConnection.init() IllegalAccessException: " + e.getMessage());
        } catch (InstantiationException e) {
            throw new UnavailableException(
                    "TransactionConnection.init() InstantiationException: " + e.getMessage());
        }
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws IOException, ServletException {

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head>");
        out.println("<title>A Per Transaction Connection</title>");
        out.println("</head>");
        out.println("<body>");

        Connection connection = null;
        try {
            // establish a connection
            connection = DriverManager.getConnection("jdbc:oracle:thin:@dssw2k01:1521:orcl", "scott", "tiger");
        } catch (SQLException e) {
            throw new UnavailableException("TransactionConnection.init() SQLException: " + e.getMessage());
        }

        Statement statement = null;
        ResultSet resultSet = null;
        String userName = null;
        try {
            // test the connection
            statement = connection.createStatement();
            resultSet = statement.executeQuery("select initcap(user) from sys.dual");
            if (resultSet.next())
                userName = resultSet.getString(1);
        } catch (SQLException e) {
            out.println("TransactionConnection.doGet() SQLException: " + e.getMessage() + "<p>");
        } finally {
            if (resultSet != null)
                try {
                    resultSet.close();
                } catch (SQLException ignore) {
                }
            if (statement != null)
                try {
                    statement.close();
                } catch (SQLException ignore) {
                }
        }

        if (connection != null) {
            // close the connection
            try {
                connection.close();
            } catch (SQLException ignore) {
            }
        }

        out.println("Hello " + userName + "!<p>");
        out.println("You're using a per transaction connection!<p>");
        out.println("</body>");
        out.println("</html>");
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws IOException, ServletException {
        doGet(request, response);
    }
}