List<DeptVO>& List<Map>
1. 첫번째 제네릭 타입은 DeptVO이다
private int deptno;
private String dname
private String loc;
2. 두번째 제네릭 타입은 Map이다.- Object -형전환-캐스팅연산자
연산을 해야 하니까....+,-,*,/,%
CastingException 만날 수 있다.
:
어디가 어떻게 다르지?
ORM솔루션-MyBatis(반자동)와의 연계 --->Hibernate(DML문 자체가 없음) 그래서 독이 될수도...ㅎ
DV와 연동을 자동으로 해준다...
오라클에서 변수는 뭐지?
표 두개 불러올때
데이터 정규화
https://code-lab1.tistory.com/48
제1정규화
하나만 들어있어야한다.
오라클과 자바 연결
오라클에서의 sql문을 사용할때 StringBuilder를 사용
append해준다
리스트로 디비연동하기
package dev_java.basic;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import dev_java.util.DBConnectionMgr;
public class ListDeptVO {
DBConnectionMgr dbMgr= new DBConnectionMgr();
Connection con =null;
PreparedStatement pstmt=null;
ResultSet rs =null;//오라클 테이블에서 제공되는 커서를 조작하는 함수제공
public List<DeptVO> getEmpList(){
List<DeptVO> list =null;
StringBuilder sql= new StringBuilder();
sql.append("SELECT ");
sql.append(" empno, ename, dname");
sql.append(" FROM emp, dept ");
sql.append(" WHERE emp.deptno = dept.deptno");
try {
con=dbMgr.getConnection();
pstmt = con.prepareStatement(sql.toString());
rs = pstmt.executeQuery();
list= new ArrayList<>();//list.size()=0
DeptVO dVO= null;
while(rs.next()){ //테이블에 한 줄을 가져온다 있으면 돌아라
dVO =new DeptVO();//디폴트 생성자를 호출함 0 null
// dVO =new DeptVO(0,null,rs.getString("dname"));//쌤은 파라미터있는걸로 받아오심
// System.out.println(rs.getInt("empno")+","+rs.getString("ename")+","+rs.getString("dname"));
dVO.setDeptno(Integer.parseInt(rs.getString("empno")));//getString으로 쿼리문의 실행 결과를받아온다.
//그리고 내가 넣어준다. set으로 DeptVO클래스에
dVO.setDname(rs.getString("dname"));
dVO.setLoc(rs.getString("ename"));
list.add(dVO);//0부터 차례로 들어간다.
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
public static void main(String[] args) {
ListDeptVO listDeptVO= new ListDeptVO();
List<DeptVO> list =null;
list=listDeptVO.getEmpList();
System.out.println("list : "+list);
for(DeptVO rdVO: list){
System.out.println(rdVO);//while문을 타지않으면 null인상태
System.out.println(rdVO.getDeptno()+","+rdVO.getDname()+","+rdVO.getLoc());
}
}
}
맵으로 디비연동하기
package dev_java.basic;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import dev_java.util.DBConnectionMgr;
public class ListMap {
DBConnectionMgr dbMgr= new DBConnectionMgr();
Connection con =null;
PreparedStatement pstmt=null;
ResultSet rs =null;//오라클 테이블에서 제공되는 커서를 조작하는 함수제공
public List<Map<String,Object>> getEmpList(){
List<Map<String,Object>> list =null;
StringBuilder sql= new StringBuilder();
sql.append("SELECT ");
sql.append(" empno, ename, dname");
sql.append(" FROM emp, dept ");
sql.append(" WHERE emp.deptno = dept.deptno");
try {
con=dbMgr.getConnection();
pstmt = con.prepareStatement(sql.toString());
rs = pstmt.executeQuery();
list= new ArrayList<>();//list.size()=0
Map<String, Object> rmap= null;
while(rs.next()){ //테이블에 한 줄을 가져온다 있으면 돌아라
rmap =new HashMap<>();
rmap.put("번호",rs.getInt("empno"));//키는 내가 정해주는거고 뒤에오는게 오라클에서 받은것
rmap.put("ename",rs.getString("ename"));
rmap.put("dname",rs.getString("dname"));
list.add(rmap);//0부터 차례로 들어간다.
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
public static void main(String[] args) {
ListMap rm =new ListMap();
List<Map<String, Object>> list=null;
list =rm.getEmpList();
System.out.println("list : "+list);
for(Map<String,Object> rmap:list){
System.out.println(rmap.get("empno")+","+rmap.get("dname")+","+rmap.get("ename"));
}
}
'학원수업 > 1월' 카테고리의 다른 글
01/05 국비학원 29회차 오라클수업 (0) | 2023.01.05 |
---|---|
01/04 국비학원 28회차 오라클수업 (0) | 2023.01.04 |
01/03 국비학원 27회차-오라클수업(데이터 모델링, Toad로 sql문 작성) (0) | 2023.01.03 |
01/02 오라클 숙제 (0) | 2023.01.02 |
01/02 국비학원-26회차 오라클수업 (데이터조작어, Toad 테이블 만들기) (0) | 2023.01.02 |
댓글