PrintWriter out = response.getWriter();
Clob biography = null;
Connection connection = CacheConnection.checkOut();
Statement statement = null;
ResultSet resultSet = null;
String sql =
"select biography " +
"from person p, person_information i " +
"where p.person_id = i.person_id " +
"and last_name = " +
formatWithTicks(request.getParameter("last_name")) + " " +
"and first_name = " +
formatWithTicks(request.getParameter("first_name"));
try {
statement = connection.createStatement();
resultSet = statement.executeQuery(sql);
if (resultSet.next()) {
biography = resultSet.getClob(1);
}
else {
response.setContentType("text/html");
out.println("<html><head><title>Person Biography</title></head>");
out.println("<body><h1>No data found</h1></body></html>");
return;
}
response.setContentType("text/plain");
Reader in = biography.getCharacterStream();
System.out.println("after getCharacterStream");
int length = (int)biography.length();
System.out.println("lenght of the Clob is " + length);
char[] buffer = new char[1024];
while ((length = in.read(buffer)) != -1) {
System.out.println("writing " + length + " chars");
out.write(buffer, 0, length);
}
System.out.println("written");
in.close();
in = null;
out.flush();
}
catch (SQLException e) {
System.out.println(
"TestClobCharacterServlet.doGet() SQLException: " +
e.getMessage() + "executing ");
System.out.println(sql);
}
finally {
if (resultSet != null)
try { resultSet.close(); } catch (SQLException ignore) { }
if (statement != null)
try { statement.close(); } catch (SQLException ignore) { }
}
// let's return the conection
CacheConnection.checkIn(connection);