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