봉봉의 개인 블로그
2017-05-19-P 본문
선생님이 주신 파일은
이렇게 생긴파일을 이제 문제를 해결해보자.
분리 시키고 만들기
먼저 패키지를 만든다.
먼저 위 사진과 같이 패키지를 만들어줍니다 뒤에 2라고 적힌 파일들은 백업파일들이므로 안적힌것만 만들어도 상관없다.
그후 호출하는 main CustomerMain.java 파일안을 아래와 같이 만들어줍니다.
아래와 같이 작성해준다.
설명을 조금하자면 8~10번까지는 각각의 생성자 메서드를 통해서 새롭게 생성된 객체의 주소값을 각각의 객체참조 변수에 할당하는 내용이다
그리고
16~17번의 문은 customerDao 주소값안에 insetcustomer 메서드를 통해서 값을 입력하고 잘실행되었는지 확인하기 위해 결과값을 리턴받고 확인한것이다.
23~24번의 문은 customerDao 주소값안에 deletecustomer 메서드를 통해서 값을 삭제하고 잘실행되었는지 확인하기 위해 결과값을 리턴받고 확인한것이다.
30~31번의 문은 customerDao 주소값안에 updatecustomer 메서드를 통해서 값을 수정하고 잘실행되었는지 확인하기 위해 결과값을 리턴받고 확인한 것이다.
38~44번의 문은 customerDao 주소값안에 selectcustomer 메서드를 통해서 하나의 값을 검색하고 그 값의 주소값을 리턴받아 그 selectcustomer 주소값안에 값을 get 메서드를 통해서 값들을 출력한것이다.
그리고 selectcustomer 메서드를 통해 리턴받은 주소값의 데이터 타입은 Customer 데이터 타입이다.
46~48번의 문은 customerDao 주소값안에 selectcustomerListAll 메서드를 통해서 다수의 값을 검색하고 그 값의 주소값을 ArrayList 배열 군집안에 담아서 여러개의 값들을 리턴받아 list안에 주소값들을 담고 주소값안의 값들은 값이 여러개 나오기 때문에 for문을 이용해 list안에 배열의 갯수만큼 반복하고 c안에 담긴 주소값안에 get 메서드를 통해서 값들을 호출하는것이다.
즉 ArrayList 는 메서드 선언한 부분에선 DTO에 값을 셋하고 셋한 값들이 있는곳의 주소값을 ArrayList에 담고 이것을 반복하여 담긴 주소값들을 배열의 형태로 리턴해 for반복문을 통해 출력할수있는것이다.
그리고 각각의 CustomerDao 타입으로 선언된 customerDao 주소값안에
insetcustomer ,deletecustomer ,ipdatecustomer ,selectcustomer ,selectcustomerListAll 메서드를 선언한다. 아래의 사진과 같이 작성하면 된다.
설명을 하자면 14번에서 17번까지는 String 으로 미리 드라이버 로딩과 DB연결할때 받아야 할값들을 미리 String 의형태의 변수안에 값을 넣어놓은것이다 여기서 final 를 적어주게 됨으로써
수정해서 사용하지 않겠다라는 뜻이 되면 상수가 되게 된다 보통 상수는 대문자로 적어 구별한다
그후 23번에서부터 36번까지의 문은 모든 메서드에서 드라이버 로딩과 DB 연결을 해줄꺼기 때문에 밖으로 빼서 메서드화 시켜놓고 Connection 타입으로 데이터를 리턴 받아놓은것이다.
그후 37~38번의 문은 메서드에서 37번의 문은 메서드안에 쿼리 준비를 위해 필요한 문이기에 전연변수로써 밖으로 빼서 모든 메서드에서 사용할수있게 선언을 해두었다. 38번문도 마찬가지로
사용하는 메서드가 있으므로 전역변수로써 사용할수있게 선언해두었다
45~55번문 까지는 객체를 종료하는 메서드를 선언해 놓았다 try 문 catch 문이 있고 fially문에 들어가는
문을 메서드화 시켜 호출하는 형태로 메서드화 시켜놓았다.
다음으로 60~85번까지의 문은 CustomerMain.java 파일안에 46~48 문을 실행하기 위한 메서드이다
설명을하자면 먼저 ArrayList<Customer>타입으로 객체참조변수 returnList선언하고 ArrayList<Customer>생성자 메서드를 통해 생성된 객체의 주소값을 returnList안에 할당해준다.
그후 65번문에서 쿼리 문을 String 타입의 변수 sql에 담아둔후
try문 안에서 conn = this.getConnection(); 통해서 드라이버 로딩과 DB를 연결해준후
68번문을 통해서 쿼리 실행을 위한 준비를 해줍니다
그후 69번문에서 실행 결과의 주소값을 rs 안에 담고
while 문을 통해 그안에 값이 있을때
반복적으로 Customer 타입으로 객체참조변수 customer 선언하고 새로운 객체를 반복적으로 생성해주면서 Customer 타입으로 선언된 customer 주소값안에 set 메서드를 통해 rs주소값 안에 담긴 컬럼안의 값들을 get 메서드 들을 통해 set 한후 셋한 객체의 주소값들을 반복적으로 returnList안에 add메서드를 통해 주소값을 추가시킨다음 호출한곳으로 ArrayList<Customer>타입의 주소값 뭉치 returnList를 리턴한후 CustomerMain.java파일안에 46~48번 문을 통해 값을 콘솔창에 출력해줍니다.
90번에서 110번까지의 줄은 CustomerMain.java파일안에 38~44번문에서 호출한 메서드의 선언이다.
먼저 int 타입의 id 값을 받고 Customer타입의 객체참조변수 customer선언하고 Customer생성자 메서드를 통해서 새로 생성된 객체의 주소값을 customer안에 할당해줍니다. 그후 92번문을 통해
드라이버 로딩과 DB를 연결시켜 줍니다.
그다음 쿼리 실행을 위한 준비를하고 set 메서드를 통해 쿼리문에 값을 셋해주고 실행해줍니다
그 결과값을 리턴받아 rs 안에 담고 if 문을 통해 rs 안에 값을 customer객체참조변수 안에 할당된 주소의 새로운 객체 안에 rs 주소값안의 get 메서드의 값들을 set해줍니다. 그후 그 값들을 Customer타입의 customer로 호출한곳으로 리턴해줍니다 . CustomerMain.java 파일의 38 ~ 44 번문의 문장을통해 리턴받은 값안의 내용을 get해서 화면에 뿌려줍니다.
116~138번까지의 문은 CustomerMain.java파일안에 16~17문에서 사용하기 위한 insert 메서드이다.
설명을하자면 드라이버로딩과 DB를 연결하고 120번~130번 까지의 문은 쿼리 실행을 위한 준비와 쿼리문장안에 값들을 set 한내용들이다. 여기서 120~ 124번문같이 적은 이유는미리 customer 안에 값들을 set 해놓고 호출한곳에서 출력까지 해볼려고 만들어놓아놨던 문장이다 . 그후 131번문을 통해서 쿼리를 실행하고 결과값을 int 타입의 returnRowCount 에 담아 호출한곳으로 리턴해준다.
143~156번까지의 문은 CustomerMain.java파일안에 23~24문에서 사용하기 위한 delete 메서드 이다.
드라이버 로딩과 DB를 연결하고 쿼리실행을 위한 준비를하고 쿼리문에 값을 set 하고 실행후 결과값을 실행한 곳으로 리턴해준다.
162~179번까지의 문은 CustomerMain.java파일안에 30~31문에서 사용하기 위한 update 메서드 이다.
드라이버 로딩과 DB를 연결하고 쿼리 실행을 위한 준비를 하고 그안에 값들을 set하고 쿼리를 실행하고 그 결과 값을 호출한곳으로 리턴해줍니다.
'학원에서 배운것들 > TEA - P' 카테고리의 다른 글
2017-05-24-P (0) | 2017.05.24 |
---|---|
2017-05-22-P (0) | 2017.05.22 |
2017-05-18-P (0) | 2017.05.18 |
2017-05-17-P (0) | 2017.05.17 |
2017-05-12-P (0) | 2017.05.12 |