mem()rand()m

ひよっこIT基盤技術者の備忘録

HyperSQLの利用(2)

JavaアプリケーションでHyperSQLを利用する。 前回作成したMyTable表の内容を表示するWebアプリケーションを作成する。

アプリケーションの構成

ここではサーブレット一つでDBアクセス、結果セット表示を行う。 * ShowDBServlet.java

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class ShowDBServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public ShowDBServlet() {
        super();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String sql = "SELECT * FROM MyTable";


        response.setContentType("text/html;charset=Windows-31J");
        PrintWriter out = response.getWriter();


        out.println("<html>" + 
                "<head><title>practice HSQL</title>" +
                "<link rel=stylesheet type=text/css href=/practice/css/myStyle.css>" +
                "</head>" +
                "<body><table>" +
                "<tr><th>id</th><th>name</th><th>dept</th>");

        try{
            Class.forName("org.hsqldb.jdbcDriver");
            try(
                    Connection con = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/practicedb","SA","");
                    PreparedStatement stmt = con.prepareStatement(sql);
                    ResultSet rs = stmt.executeQuery();
                    ){

                while(rs.next()){
                    out.println("<tr><td>" + rs.getInt(1) +
                            "</td><td>" + rs.getString(2) +
                            "</td><td>" + rs.getString(3) +
                            "</td></tr>");
                }

            }catch(SQLException e){
                e.printStackTrace();
            }catch(Exception e){
                e.printStackTrace();
            }
        }catch(Exception e){
            e.printStackTrace();
        }
        out.println("</table></body></html>");

    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

}