728x90
반응형
📖 Map
public static void main(String[] args) {
Map<String, Object>map = new HashMap<>();
map.put("name", "러아니푸");
map.put("pet","순돌이");
map.put("age",99);
System.out.println(map.get("name")); // 키로 값을 출력
System.out.println("");
for(String k :map.keySet()) { // 키만 출력
System.out.println(k);
}
System.out.println("");
for(Object v : map.values()) { // 값만 출력
System.out.println(v);
}
}
- 키와 값으로 구성되어있다.
- 여러 타입의 값을 저장하기에 좋다.
- 키값은 중복이 허용되지 않지만, 값은 상관없다.
- for문의 사용이 어렵고, foreach문을 통해 키와 값을 출력할 수 있다.
📖 table join 데이터 받아오는 방법
Emp.java : 사원 정보를 담는 Vo
public class Emp {
private int empNo;
private String empName;
private int deptNo;
// setter/getter, toStrint() 넣어야 합니다
}
Dept.java : 부서 정보를 담는 Vo
public class Dept {
private int deptNo;
private String deptName;
private String deptLoc;
// setter/getter, toStrint() 넣어야 합니다
}
=> 사원과 부서 테이블을 join했을 경우의 값을 받아온다.
😀 Vo 사용으로 처리
EmpAndDept.java : Emp와 Dept를 넣은 Vo
public class EmpAndDept {
private Emp emp;
private Dept dept;
// setter/getter, toStrint() 넣어야 합니다
}
main.java
public EmpAndDept selectEmpVoOne() {
// 사원 정보
Emp emp = new Emp();
emp.setEmpNo(1);
emp.setEmpName("러아니푸");
emp.setDeptNo(100);
// 부서 정보
Dept dept = new Dept();
dept.setDeptNo(100);
dept.setDeptName("티스토리");
dept.setDeptLoc("카카오");
// 사원과 부서
EmpAndDept end = new EmpAndDept();
end.setEmp(emp);
end.setDept(dept);
return end;
}
public static void main(String[] args) {
EmpDao empDao = new EmpDao();
EmpAndDept end = empDao.selectEmpVoOne();
System.out.println(end);
}
*실제로는 selectEmpVoOne()은 EmpDao에 넣고 사용합니다*
- 새로운 Vo에 join되는 테이블의 객체를 넣어 사용합니다.
- 이 방식은 새로운 형식의 join을 할 때 마다, 그에 맞는 Vo를 만들어 줘야 하는 방식입니다.
- 자주 join되는 테이블이면 몰라도 한 두번 사용하는 join을 위해 만드는 것은 비효율적입니다.
😀 Map 사용으로 처리
main.java
public Map<String, Object> selectEmpMapOne() {
Map<String, Object> map = new HashMap<>();
Emp emp = new Emp();
emp.setEmpNo(1);
emp.setEmpName("러아니푸");
emp.setDeptNo(100);
Dept dept = new Dept();
dept.setDeptNo(100);
dept.setDeptName("티스토리");
dept.setDeptLoc("카카오");
map.put("emp", emp);
map.put("dept", dept);
return map;
}
public static void main(String[] args) {
EmpDao empDao = new EmpDao();
Map<String, Object> map = empDao.selectEmpMapOne();
Emp emp = (Emp)map.get("emp");
Dept dept = (Dept)map.get("dept");
System.out.println(emp);
System.out.println(dept);
}
*실제로는 selectEmpVoOne()은 EmpDao에 넣고 사용합니다*
- Emp와 Dept 각각을 Map에 넣어 사용합니다.
- 새로운 Vo를 만들지 않아 편리하지만 받아서 사용할때는 형변환을 해야합니다.
- 값을 받아올 필드의 개수가 적다면 굳이 Emp, Dept의 객체를 넘기지않고, 키값에 맞춰 값만 넘겨도 좋습니다.
728x90
반응형
'언어 > Java' 카테고리의 다른 글
[java] 에러와 예외처리 (1) | 2021.10.07 |
---|---|
[java] list / set (0) | 2021.10.06 |
Java 메서드 정리 / 생성자, 일반 (0) | 2021.09.13 |
이클립스 getter,setter 자동 생성 / 정보은닉과 캡슐화 (0) | 2021.09.10 |
Java ArrayList 사용법 정리 / 동적 배열 (0) | 2021.08.29 |