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;
}
}
|