JAVA
DAO JDBC #2
다만사
2023. 1. 18. 22:39
DBのクローズするのは忘れて、追加して、T load メソッドを追加した。
修正したクラスは前回に修正して送った。
protected T load(String sql, Object... params) {
try {
conn = getConn();
pstmt = conn.prepareStatement(sql);
setParams(pstmt, params);
rs = pstmt.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
if (rs.next()) {
T entity = (T)entityClass.newInstance();
for (int i=0; i<columnCount; i++) {
String columnName = rsmd.getColumnName(i+1);
Object columnValue = rs.getObject(i+1);
setValue(entity, columnName, columnValue);
}
return entity;
}
} catch (SQLException | InstantiationException | IllegalAccessException e) {
throw new RuntimeException(e);
} finally {
close(rs, pstmt, conn);
}
return null;
}
テストは DTOを作って、今度はサブレットでした。
つぎはDTOだ。
サブレットもある。
package com.sora.webapptest;
import com.sora.webapptest.dao.EmployeeDAO;
import com.sora.webapptest.dto.Employee;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
@WebServlet(name = "EmpServlet", value = "/EmpServlet")
public class EmpServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
EmployeeDAO dao = new EmployeeDAO();
response.setContentType("text/html; charset=utf-8");
PrintWriter out = response.getWriter();
String empId = request.getParameter("id");
// List<Employee> employeeList = dao.getEmpList();
Employee employee = dao.getEmpById(Integer.parseInt(empId));
out.println("<html><head><title>emp list</title></head><body>");
out.println("<table border=\"1\">");
// for (Employee employee : employeeList) {
out.print("<tr>");
out.print("<td>" + employee.getEmployee_id()
+ "</td><td>" + employee.getFirst_name()
+ "</td><td>" + employee.getLast_name()
+ "</td><td>" + employee.getEmail()
+ "</td><td>" + employee.getPhone_number()
+ "</td><td>" + employee.getHire_date()
+ "</td><td>" + employee.getJob_id()
+ "</td><td>" + employee.getSalary()
+ "</td><td>" + employee.getCommission_pct()
+ "</td><td>" + employee.getManager_id()
+ "</td><td>" + employee.getDepartment_id() + "</td>" );
out.println("</tr>");
// }
out.println("</table>");
out.println("</body></html>");
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
package com.sora.webapptest.dto;
import java.math.BigDecimal;
import java.util.Date;
public class Employee {
private BigDecimal employee_id;
private String first_name;
private String last_name;
private String email;
private String phone_number;
private Date hire_date;
private String job_id;
private BigDecimal salary;
private BigDecimal commission_pct;
private BigDecimal manager_id;
private BigDecimal department_id;
public BigDecimal getEmployee_id() {
return employee_id;
}
public void setEmployee_id(BigDecimal employee_id) {
this.employee_id = employee_id;
}
public String getFirst_name() {
return first_name;
}
public void setFirst_name(String first_name) {
this.first_name = first_name;
}
public String getLast_name() {
return last_name;
}
public void setLast_name(String last_name) {
this.last_name = last_name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone_number() {
return phone_number;
}
public void setPhone_number(String phone_number) {
this.phone_number = phone_number;
}
public Date getHire_date() {
return hire_date;
}
public void setHire_date(Date hire_date) {
this.hire_date = hire_date;
}
public String getJob_id() {
return job_id;
}
public void setJob_id(String job_id) {
this.job_id = job_id;
}
public BigDecimal getSalary() {
return salary;
}
public void setSalary(BigDecimal salary) {
this.salary = salary;
}
public BigDecimal getCommission_pct() {
return commission_pct;
}
public void setCommission_pct(BigDecimal commission_pct) {
this.commission_pct = commission_pct;
}
public BigDecimal getManager_id() {
return manager_id;
}
public void setManager_id(BigDecimal manager_id) {
this.manager_id = manager_id;
}
public BigDecimal getDepartment_id() {
return department_id;
}
public void setDepartment_id(BigDecimal department_id) {
this.department_id = department_id;
}
}