model.dao.ConnectionManager.java package model.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class ConnectionManager { private final static String URL = "jdbc:postgresql://localhost:5432/mydb"; private final static String USER = "postgres"; private final static String PASSWORD = "xxxxxxxx"; // private final static String URL = "jdbc:mysql://localhost:3306/sampledb"; // private final static String USER = "userU"; // private final static String PASSWORD = "userP"; public static Connection getConnection() throws SQLException, ClassNotFoundException { // JDBCドライバの読み込み Class.forName("org.postgresql.Driver"); // Class.forName("com.mysql.cj.jdbc.Driver"); return DriverManager.getConnection(URL, USER, PASSWORD); } }
model.dao.EmployeeDAO.java package model.dao; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import model.entity.EmployeeBean; public class EmployeeDAO { public List<EmployeeBean> selectAll() throws SQLException, ClassNotFoundException { List<EmployeeBean> employeeList = new ArrayList<EmployeeBean>(); // データベースへの接続の取得、Statementの取得、SQLステートメントの実行 try (Connection con = ConnectionManager.getConnection(); Statement stmt = con.createStatement(); ResultSet res = stmt.executeQuery("SELECT * FROM m_employee")) { // 結果の操作 while (res.next()) { String code = res.getString("code"); String name = res.getString("name"); int age = res.getInt("age"); String section = res.getString("section"); EmployeeBean employee = new EmployeeBean(); employee.setCode(code); employee.setName(name); employee.setAge(age); employee.setSection(section); employeeList.add(employee); } } return employeeList; } }
model.entity.EmployeeBean.java package model.entity; import java.io.Serializable; public class EmployeeBean implements Serializable { private String code; private String name; private int age; private String section; public EmployeeBean() { } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getSection() { return section; } public void setSection(String section) { this.section = section; } }
servlet.EmployeeListServlet.java package servlet; import java.io.IOException; import java.sql.SQLException; import java.util.List; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import model.dao.EmployeeDAO; import model.entity.EmployeeBean; @WebServlet("/employee-list-servlet") public class EmployeeListServlet extends HttpServlet { private static final long serialVersionUID = 1L; public EmployeeListServlet() { super(); // TODO Auto-generated constructor stub } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.getWriter().append("Served at: ").append(request.getContextPath()); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List<EmployeeBean> employeeList = null; // DAOの生成 EmployeeDAO dao = new EmployeeDAO(); try { // DAOの利用 employeeList = dao.selectAll(); } catch (SQLException | ClassNotFoundException e) { e.printStackTrace(); } // リクエストスコープへの属性の設定 request.setAttribute("employeeList", employeeList); // リクエストの転送 RequestDispatcher rd = request.getRequestDispatcher("employee-list.jsp"); rd.forward(request, response); } }
employee-list.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.util.List,model.entity.EmployeeBean"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>従業員情報 一覧</title> </head> <body> <% List<EmployeeBean> employeeList = (List) request.getAttribute("employeeList"); %> <table> <tr> <th>コード</th> <th>氏名</th> <th>年齢</th> <th>部署</th> </tr> <% for (EmployeeBean employee : employeeList) { %> <tr> <td><%=employee.getCode()%></td> <td><%=employee.getName()%></td> <td><%=employee.getAge()%></td> <td><%=employee.getSection()%></td> </tr> <% } %> </table> </body> </html>
menu.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>メニュー</title> </head> <body> <form action="employee-list-servlet" method="POST"> <input type="submit" value="一覧表示"> </form> </body> </html>