UpdateMySqlClobServlet.java Source code

Java tutorial

Introduction

Here is the source code for UpdateMySqlClobServlet.java

Source

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

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 UpdateMySqlClobServlet extends HttpServlet {

    public static Connection getConnection() throws Exception {
        String driver = "org.gjt.mm.mysql.Driver";
        String url = "jdbc:mysql://localhost/databaseName";
        String username = "root";
        String password = "root";
        Class.forName(driver);
        Connection conn = DriverManager.getConnection(url, username, password);
        return conn;
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws IOException, ServletException {
        Connection conn = null;
        String id = "001";
        String fileAsURL = "http://yourwebsite/fileName.dat";
        ServletOutputStream out = response.getOutputStream();
        response.setContentType("text/html");
        out.println("<html><head><title>UpdateMySqlClobServlet</title></head>");

        try {
            conn = getConnection();
            String fileContent = getClobsContentAsString(fileAsURL);
            updateCLOB(conn, id, fileContent);
            out.println("<body><h4>OK: updated an existing record with id=" + id + "</h4></body></html>");
        } catch (Exception e) {
            e.printStackTrace();
            out.println("<body><h4>Error: " + e.getMessage() + "</h4></body></html>");
        }
    }

    public void updateCLOB(Connection conn, String id, String fileContent) throws Exception {
        PreparedStatement pstmt = null;
        try {
            pstmt = conn.prepareStatement("update dataTable set filebody= ? where id = ?");
            pstmt.setString(1, fileContent);
            pstmt.setString(2, id);
            pstmt.executeUpdate();
        } finally {
            pstmt.close();
        }
    }

    public static String getClobsContentAsString(String urlAsString) throws Exception {
        InputStream content = null;
        try {
            java.net.URL url = new java.net.URL(urlAsString);
            java.net.URLConnection urlConn = url.openConnection();
            urlConn.connect();
            content = urlConn.getInputStream();

            int BUFFER_SIZE = 1024;
            ByteArrayOutputStream output = new ByteArrayOutputStream();
            int length;
            byte[] buffer = new byte[BUFFER_SIZE];

            while ((length = content.read(buffer)) != -1) {
                output.write(buffer, 0, length);
            }
            return new String(output.toByteArray());

        } finally {
            content.close();
        }
    }

}