- 생성자
- getter setter 메서드
- this
- final 상수
- /customer/goodsList.jap
- /customer/goodsOne.jsp + commentList
- /customer/ordersListByCustomer.jsp
- 결제완료(고객)
- 배송중(emp 처리)
- 배송완료(고객)시 후기 등록 버튼이 활성화
- DB 정규화를 더 할것이었으면 배송 state 별로
데이터를 다 쪼갰어야 했음 (지금은 안함)
Car.java
// 클래스 : 메모리(코드영역)에 로드되는 소스코드 (설명서, 명세서, 설계도)
// 클래스 - DB Table
// 객체 - DB Data
// Car c = new Car();
// Instance(객체) : 클래스(설계도)로 만들어지는 실행가능한 객체
// 객체를 생성할 때는 new 연산자를 사용 + 생성자 메서드
// 생성자메서드(클래스와는 별개로 독립적인 존재)
// 메서드 1) static메서드 2) 생성자 3) 일반메서드
public class Car {
public int cc;
public String color;
public Car() {
}
public Car(int cc, String color) {
this.cc = cc;
this.color = color;
}
private int x;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public void printCarInfo() {
System.out.println("cc : " + this.cc);
System.out.println("color : " + this.color);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Car c1 = new Car(150, "black");
System.out.println("c1.cc : " + c1.cc);
System.out.println("c1.color : " + c1.color);
System.out.println();
c1.printCarInfo();
System.out.println();
Car c2 = new Car(500, "red");
c2.printCarInfo();
c1.setX(15);
System.out.println("c1.x : " + c1.x);
System.out.println("c1.getX() : " + c1.getX());
}
}
Data.java (Package x)
package x;
public class Data {
public Data() {
}
public int num; // 접근 제한 없음
int age; // default, 동일 패키지 안에서만 접근 가능
protected int level; // 동일 패키지, 다른 패키지 상속관계 에서만 접근 가능
private int pw; // 내 클래스 안에서만 접근 가능
public void test() {
this.num = 1;
this.age = 2;
this.level = 3;
this.pw = 4;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
DataMain.java (Package y)
package y;
import x.*;
public class DataMain{
public static void main(String[] args) {
// TODO Auto-generated method stub
Data d = new Data();
d.num = 2; // 패키지가 다르면 public만 접근 가능
}
}
DataMain2.java (Package x)
package x;
public class DataMain2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Data d = new Data();
// 패키지가 같으면 private을 제외한 모든 제어자 접근 가능
d.num = 10;
d.age = 20;
d.level = 30;
}
}
/oracle-sql/Emp.java (getter, setter 추가)
package vo;
public class Emp {
private String ename;
private String job;
private String hireDate;
private double sal;
private double comm;
private int empNo;
private int mgr;
private int deptNo;
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public String getHireDate() {
return hireDate;
}
public void setHireDate(String hireDate) {
this.hireDate = hireDate;
}
public double getSal() {
return sal;
}
public void setSal(double sal) {
this.sal = sal;
}
public double getComm() {
return comm;
}
public void setComm(double comm) {
this.comm = comm;
}
public int getEmpNo() {
return empNo;
}
public void setEmpNo(int empNo) {
this.empNo = empNo;
}
public int getMgr() {
return mgr;
}
public void setMgr(int mgr) {
this.mgr = mgr;
}
public int getDeptNo() {
return deptNo;
}
public void setDeptNo(int deptNo) {
this.deptNo = deptNo;
}
}
Emp.java 필드 접근제어자 private 변경에 따른
EmpDAO.java 코드 수정
package dao;
import java.sql.*;
import java.util.*;
import vo.Emp;
public class EmpDAO {
// 조인으로 Map을 사용하는 경우
public static ArrayList<HashMap<String, Object>> selectEmpAndDeptList() throws Exception{
ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
Connection conn = DBHelper.getConnection();
String sql = "SELECT e.empNo empNo, e.ename ename, e.deptNo deptNo, d.dname dname FROM emp e INNER JOIN dept d ON e.deptno = d.deptno";
PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
while(rs.next()) {
HashMap<String, Object> m = new HashMap<>();
m.put("empNo", rs.getInt("empNo"));
m.put("ename", rs.getString("ename"));
m.put("deptNo", rs.getInt("deptNo"));
m.put("dname", rs.getString("dname"));
list.add(m);
}
conn.close();
return list;
}
// VO 사용
public static ArrayList<Emp> selectEmpList() throws Exception{
ArrayList<Emp> list = new ArrayList<>();
Connection conn = DBHelper.getConnection();
String sql = "SELECT empNo, ename, sal FROM emp";
PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
while(rs.next()) {
Emp e = new Emp();
e.setEmpNo(rs.getInt("empNo"));
e.setEname(rs.getString("ename"));
e.setSal(rs.getDouble("sal"));
/*
e.empNo = rs.getInt("empNo");
e.ename = rs.getString("ename");
e.sal = rs.getDouble("sal");
*/
list.add(e);
}
conn.close();
return list;
}
}
OrdersDAO.java
ordersGoodsForm.jsp
ordersGoodsAction.jsp
ordersGoodsResult.jsp