DisplayClobServlet.java Source code

Java tutorial

Introduction

Here is the source code for DisplayClobServlet.java

Source

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

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DisplayClobServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws IOException, ServletException {

        Clob fileAsCLOB = null;
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;

        String id = "001";
        String query = "select fileBody from DataFiles where id = " + id;
        ServletOutputStream out = response.getOutputStream();

        // all responses will be in text/html format
        response.setContentType("text/html");

        try {
            conn = getHSQLConnection();
        } catch (Exception e) {
            out.println("<html><head><title>CLOB Example</title></head>");
            out.println("<body><h4>Database Connection Problem.</h4>");
            out.println("<h5>" + e.getMessage() + "</h5></body></html>");
            return;
        }

        try {
            stmt = conn.createStatement();
            rs = stmt.executeQuery(query);
            if (rs.next()) {
                fileAsCLOB = rs.getClob(1);
            } else {
                out.println("<html><head><title>CLOB Example</title></head>");
                out.println("<body><h4>No file found for id=" + id + "</h4></body></html>");
                return;
            }

            // Materialize the CLOB as a String object (get the whole clob).
            long length = fileAsCLOB.length();
            // note that the first character is at position 1
            String fileAsString = fileAsCLOB.getSubString(1, (int) length);

            // write it for display
            out.println(fileAsString);
            System.out.println("CLOB writing done.");
        } catch (SQLException e) {
            out.println("<html><head><title>Error: CLOB Example</title></head>");
            out.println("<body><h4>Error=" + e.getMessage() + "</h4></body></html>");
            return;
        } finally {
            try {
                rs.close();
                stmt.close();
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    private static Connection getHSQLConnection() throws Exception {
        Class.forName("org.hsqldb.jdbcDriver");
        System.out.println("Driver Loaded.");
        String url = "jdbc:hsqldb:data/tutorial";
        return DriverManager.getConnection(url, "sa", "");
    }

    public static Connection getMySqlConnection() throws Exception {
        String driver = "org.gjt.mm.mysql.Driver";
        String url = "jdbc:mysql://localhost/demo2s";
        String username = "oost";
        String password = "oost";

        Class.forName(driver);
        Connection conn = DriverManager.getConnection(url, username, password);
        return conn;
    }

    public static Connection getOracleConnection() throws Exception {
        String driver = "oracle.jdbc.driver.OracleDriver";
        String url = "jdbc:oracle:thin:@localhost:1521:databaseName";
        String username = "username";
        String password = "password";

        Class.forName(driver); // load Oracle driver
        Connection conn = DriverManager.getConnection(url, username, password);
        return conn;
    }

}