| Index ソフト・ハード Java | javaBeanSample |
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.PreparedStatement;
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;
}
public EmployeeBean select(String code)
throws SQLException, ClassNotFoundException {
EmployeeBean employee = new EmployeeBean();
String sql = "SELECT * FROM m_employee WHERE code = ?";
// データベースへの接続の取得、PreparedStatementの取得
try (Connection con = ConnectionManager.getConnection();
PreparedStatement pstmt = con.prepareStatement(sql);) {
// プレースホルダへの値の設定
pstmt.setString(1, code);
// SQLステートメントの実行
ResultSet res = pstmt.executeQuery();
// 結果の操作
while (res.next()) {
employee.setCode(res.getString("code"));
employee.setName(res.getString("name"));
employee.setAge(res.getInt("age"));
employee.setSection(res.getString("section"));
}
}
return employee;
}
public int update(EmployeeBean employee) throws SQLException, ClassNotFoundException {
int processingNumber = 0; //処理件数
String sql = "UPDATE m_employee SET name = ?, age = ?, section = ? WHERE code = ?";
// データベースへの接続の取得、PreparedStatementの取得
try (Connection con = ConnectionManager.getConnection();
PreparedStatement pstmt = con.prepareStatement(sql)) {
// DTOからのデータの取り出し
String code = employee.getCode();
String name = employee.getName();
int age = employee.getAge();
String section = employee.getSection();
// プレースホルダへの値の設定
pstmt.setString(1, name);
pstmt.setInt(2, age);
pstmt.setString(3, section);
pstmt.setString(4, code);
// SQLステートメントの実行
processingNumber = pstmt.executeUpdate();
}
return processingNumber;
}
}
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.EmployeeAlterConfirmServlet.java
package servlet;
import java.io.IOException;
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;
@WebServlet("/employee-alter-confirm-servlet")
public class EmployeeAlterConfirmServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public EmployeeAlterConfirmServlet() {
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 {
// リクエストの転送
RequestDispatcher rd = request.getRequestDispatcher("employee-alter-confirm.jsp");
rd.forward(request, response);
}
}
servlet.EmployeeAlterFormServlet.java
package servlet;
import java.io.IOException;
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;
@WebServlet("/employee-alter-form-servlet")
public class EmployeeAlterFormServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public EmployeeAlterFormServlet() {
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 {
// リクエストの転送
RequestDispatcher rd = request.getRequestDispatcher("employee-alter-form.jsp");
rd.forward(request, response);
}
}
servlet.EmployeeAlterServlet.java
package servlet;
import java.io.IOException;
import java.sql.SQLException;
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 javax.servlet.http.HttpSession;
import model.dao.EmployeeDAO;
import model.entity.EmployeeBean;
@WebServlet("/employee-alter-servlet")
public class EmployeeAlterServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public EmployeeAlterServlet() {
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 {
// セッションオブジェクトの取得
HttpSession session = request.getSession();
// セッションスコープからの属性値の取得
EmployeeBean employee = (EmployeeBean) session.getAttribute("employee");
// DAOの生成
EmployeeDAO dao = new EmployeeDAO();
int processingNumber = 0; //処理件数
try {
// DAOの利用
processingNumber = dao.update(employee);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
// リクエストスコープへの属性の設定
request.setAttribute("processingNumber", processingNumber);
// リクエストの転送
RequestDispatcher rd = request.getRequestDispatcher("employee-alter-result.jsp");
rd.forward(request, response);
}
}
servlet.EmployeeDetailServlet.java
package servlet;
import java.io.IOException;
import java.sql.SQLException;
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 javax.servlet.http.HttpSession;
import model.dao.EmployeeDAO;
import model.entity.EmployeeBean;
@WebServlet("/employee-detail-servlet")
public class EmployeeDetailServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public EmployeeDetailServlet() {
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 {
request.setCharacterEncoding("UTF-8");
String code = request.getParameter("code");
// DAOの生成
EmployeeDAO dao = new EmployeeDAO();
try {
EmployeeBean employee = dao.select(code);
// セッションオブジェクトの取得
HttpSession session = request.getSession();
// セッションスコープへの属性の設定
session.setAttribute("employee", employee);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
// リクエストの転送
RequestDispatcher rd = request.getRequestDispatcher("employee-detail.jsp");
rd.forward(request, response);
}
}
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-alter-confirm.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>
<%
request.setCharacterEncoding("UTF-8");
%>
従業員情報を以下の内容に変更します。よろしいですか?<br>
<jsp:useBean id="employee" scope="session" class="model.entity.EmployeeBean" />
<jsp:setProperty property="name" name="employee" param="name" />
<jsp:setProperty property="age" name="employee" param="age" />
<jsp:setProperty property="section" name="employee" param="section" />
コード:<jsp:getProperty property="code" name="employee" /><br>
氏名:<jsp:getProperty property="name" name="employee" /><br>
年齢:<jsp:getProperty property="age" name="employee" /><br>
部署:<jsp:getProperty property="section" name="employee" /><br>
<form action="employee-alter-servlet" method="POST">
<input type="submit" value="変更する">
</form>
<form action="employee-alter-form.jsp" method="POST">
<input type="submit" value="変更フォームに戻る">
</form>
</body>
</html>
employee-alter-form.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>
<jsp:useBean id="employee" class="model.entity.EmployeeBean" scope="session"/>
<form action="employee-alter-confirm.jsp" method="post">
コード:<jsp:getProperty property="code" name="employee" /><br>
氏名:<input type="text" name="name"
value="<jsp:getProperty property="name" name="employee" />"><br>
年齢:<input type="text" name="age"
value="<jsp:getProperty property="age" name="employee" />"><br>
部署:<input type="text" name="section"
value="<jsp:getProperty property="section" name="employee" />"><br>
<input type="submit" value="変更する">
</form>
<form action="employee-detail-servlet" method="POST">
<input type="hidden" name="code" value="<%=employee.getCode()%>">
<input type="submit" value="詳細表示画面に戻る">
</form>
</body>
</html>
employee-alter-result.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>
<%
int processingNumber = (Integer) request.getAttribute("processingNumber");
if (processingNumber > 0) {
%>
次のデータを変更登録しました。<br>
<%
} else {
%>
次のデータを変更登録できませんでした。<br>
<%
}
%>
<jsp:useBean id="employee" scope="session" class="model.entity.EmployeeBean" />
コード:<jsp:getProperty property="code" name="employee" /><br>
氏名:<jsp:getProperty property="name" name="employee" /><br>
年齢:<jsp:getProperty property="age" name="employee" /><br>
部署:<jsp:getProperty property="section" name="employee" /><br>
<form action="menu.html" method="POST">
<input type="submit" value="メニュー画面に戻る">
</form>
<% session.invalidate(); %>
</body>
</html>
employee-detail.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>従業員情報-詳細</title>
</head>
<body>
<jsp:useBean id="employee" scope="session" class="model.entity.EmployeeBean"/>
コード:<jsp:getProperty name="employee" property="code"/><br>
氏名:<jsp:getProperty name="employee" property="name"/><br>
年齢:<jsp:getProperty name="employee" property="age"/><br>
部署:<jsp:getProperty name="employee" property="section"/><br>
<form action="employee-alter-form.jsp" method="POST">
<input type="submit" value="変更する">
</form>
<form action="employee-list-servlet" method="POST">
<input type="submit" value="一覧表示">
</form>
</body>
</html>
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<EmployeeBean>) request.getAttribute("employeeList");
%>
<table>
<tr>
<th>コード</th>
<th>氏名</th>
<th></th>
</tr>
<%
for (EmployeeBean employee : employeeList) {
%>
<tr>
<td><%=employee.getCode()%></td>
<td><%=employee.getName()%></td>
<td>
<form action="employee-detail-servlet" method="POST">
<input type="hidden" name="code" value="<%=employee.getCode()%>">
<input type="submit" value="詳細表示">
</form>
</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>
|
| All Rights Reserved. Copyright (C) ITCL | |