/*
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);
}
}
|