본문 바로가기
캠퍼스/Java

54.JAVA로 DB 리드

by Sylar 2022. 8. 16.

 

객체지향 프로그램을 배웠으니 서로 역할을 나눠주겠다.

DBConnection 은 DB와의 연결을 담당하고

Emp는 DB에서 emp에 있는 데이터들을 불러오는 Entity 역할

EmpDao는 데이터의 접근, 데이터를 자기 오브젝트로 변환하는 역할을 한다.

 

 

DBConnection는 static으로 잡아야한다. 프로그램 시작전에 미리 DB에 연결되어 있어야 하기 때문.

여기는 말 그대로 DB와 연결하는 역할을 하기 때문에 해당 코드가 끝이다.

 

Emp는 전 포스팅에서 이미 설정해놓은 것을 그대로 들고와서 쓸 예정.

 

 

대망의 EmpDao이다.

 

 

 

빨간 박스와 화살표를 설명하기 전에 내부 코드를 설명 해보겠다.

DBConnection를 인스턴스화 하여  conn이라는 이름을 지은 후에 DB에 "SELECT * FROm emp" 라고 전송을 시켰다.

 

while문은 테이블에 데이터가 없을때 까지 쭉쭉 읽어내려 가면서 emps 라는 Arraylist에 차곡 차곡 담는다는 소리.

 

void를 arraylist타입으로 바꿔주자

 

 

오류가 사라졌다.

 

 

53.Select, Push

SELECT * FROM emp  -> 행 ( 칼럼, 칼럼, 칼럼, 칼럼 ... )  -> 행 14줄 커서를 내리면서 출력은 되나 커서를 다시 올리는건 안됨 중간에 데이터를 다시 출력할수가 없다는 소리 ( ..

sylar.tistory.com

해당 코드는 여기에서 쓰던걸 그대로 분할했기 때문에 따로 출력한 결과는 보지 않도록 하겠다.

 

이번엔 좀 색다른걸 추가 해 볼거다.

 

 

직원한건보기 라는 메서드를 추가할 예정이다.

말이 약간 이상한거 같은데 내 정보 보기와 비슷한 느낌으로 생각하면 될것이다.

 

 

해당 메서드의 뼈대이다. 

 

처음엔 저렇게 짰다. ( 오답임 )

 

DB에 사원번호가 7369 인 사람은 SMITH 밖에 없다.

근데 왜 오답이냐?

 

 

 

저 emp를 리턴하는 코드는 없어도 된다.
왜냐? try밖에 이미 emp가 존재해서 거기 들어가니까 

 

 

7399를 입력해도 SMITH가 나왔다 이게 무슨뜻이냐?


empno를 받아놓고 그값을 쓰는 코드가 없다. 근데 왜 스미스 나오냐? 스미스가 첫번째라서.

 

이걸 똑바로 고쳐보자

 

오라클에서 SMITH를 부르려면 이렇게 적어야 한다.

 

 

즉 줄때부터 잘못되어 있었다는 소리.

 

 

 

쓸모없던 return도 뺀후에 다시 실행하면

정상적으로 작동한다.

 

'캠퍼스 > Java' 카테고리의 다른 글

56.Service  (0) 2022.08.17
55. JAVA로 DB추가,수정,삭제  (0) 2022.08.16
53.Select, Push  (0) 2022.08.16
52.오류 잡아내기  (0) 2022.08.16
51.for문으로 그림  (0) 2022.08.14