GDJ 24/04/19 (생성자, getter, setter, this, final)

kimuki·2024년 4월 19일
 - 생성자
 - 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

profile
Road OF Developer

0개의 댓글