봉봉의 개인 블로그

2017-05-16-E 본문

학원에서 배운것들/TEA - E

2017-05-16-E

봉봉이네 2017. 5. 16. 23:24

update는 수정 처리 전까지


먼저 m_update_form.jsp 파일안을 수정해준다.

이렇게 되어있는 파일의 코드를

아래와 같이 바꿔서 호출해준다

이런식으로 바꿔 주게 됩니다 . 설명을 쪼금하자면

먼저 리스트에서 받아온 send_id 의 값을 받아줍니다 그 후 그 Mdao클래스 타입의 mdao 객체 참조변수를 선언하고 Mdao생성자 메서드를 통해서 새로운 객체를 생성하고 그 객체의 주소값을 mdao 객체 참조 변수안에 그 값을 할당해 줍니다 . 그후 mdao 안에 주소값을 찾아가서 mselectforUpdate메서드를 호출합니다 메서드 호출시 매개변수 값으로 리스트에서 받아온 send_id 의 값을 매개변수 값으로 입력후 메서드를 실행 시킵니다 메서드 실행후 리턴 받은 값을 Member 타입으로 리턴 받아 mresult 안에 담고 그안에 있는 수정화면에 mresult 안에 get 메서드를 통해 값들을 뿌려줍니다.


여기서 필요한건 mdao 안에 mselectforUpdate 메서드가 필요하므라 Mdao 클래스 안에 메서드를 새로 선언해 줍니다.

안에 58번줄에서 78번줄과 같이 메서드를 선언해줍니다

설명을 하자면 먼저 Member 클래스 타입으로 m이라는 객체참조 변수를 선언하고 Member 생성자 메서드를 통해서 새로 생성된 객체의 주소값을 m 객체참조 변수에 할당합니다.

그후 드라이버 로딩과 DB를 연결하고 conn 안에PreparedStatement 를 통해서 쿼리실행을 준비하고 쿼SetString 을 통해서 값을 set 하고 쿼리를 실행해줍니다 실행한 결과를 rs 안에 담고 if 문을 통해 값이 true 가 나오면 if 문이 실행 되게 합니다 . 그안에 이제 Member 클래스 (DTO) 를통해 생성된 객체 참조 변수 m 의 주소값을  찾가가서 그안에 있는 set메서드를 통해서 rs 안에 담긴 주소값을 찾아가서 DB 안에 컬럼의 데이터들을 m의 전역변수 set 메서드를 통해 값을 set 해줍니다 .그후 그 객체 참조 변수m의 주소값을 호출한 곳으로 리턴해줍니다.

리턴받은 m_update_form.jsp 에서 주소값을 mresult 에 담아서 get 메서드를 통해서 값을 화면에 뿌려주게 됩니다.


다음은 list 분리후 화면에 뿌리기를 할것이다.

먼저 m_list.jsp

이렇게 되어있던 소스 코드를

아래와 같이 수정해줍니다.

이렇게 수정하게 되면 먼저

Mdao클래스 타입으로 mdao객체 참조 변수를 선언하고 Mdao 생성자 메서드를 통해 생선된 객체의 주소값을 mdao 객체 참조 변수에 할당합니다 . 그후 mdao안에 mAllselect메서를 통해 ArrayList<Member>타입으로 선언된 객체참조변수 get_alm 안에 리턴받은 주소값을 할당해줍니다.

그 할당받은 주소값의 값들을 화면에 뿌려주기 위해서 for반복문을 통해 안에 조건을 걸어줍니다

for 문안에 횟수에 관한 조건은 size 를 통해서 배열의 갯수만큼 반복되도록 만들어줍니다.

그후 Member클래스 타입으로 객체참조변수 m 을선언하고 그안에 get_alm주소값 안에 주소값을 get을통해 찾아가서안에 배열의 (i++ 이기 때문에 배열을 가리키는 숫자는 올라가고 점점 다음 배열을 가리키게된다) 주소값 안의 값들을 m 주소값안의 get 메서드를 통해서 화면에 뿌려줍니다.


필요한것은 Mdao 타입으로 선언된 mdao 안에 mAllselect 메서드가 필요하게 된다.

Mdao.java 파일에가서 mAllselect 메서드를 아래와 같이 선언해준다.

79번~100번까지의 문을 선언하고 설명을하자면 먼저

ArrayList<Member>타입으로 리턴값을 받는 mAllselect 메서드를 만든다

여기서 ArrayList는 배열이다 배열의 군집이라고 보면된다 뒤에어는 <Member> 안에 Member타입의 배열 군집이라고 생각하면 편할것이다.

즉 ArrayList는 Member 클래스 데이터 타입으로 받은 배열의 주소값을 배열의 형태로 추가적으로 담는것이다.

계속 설명을 이어가자면 ArrayList타입으로 리턴을 받아야하기때문에

ArrayList 데이터 타입의 객체참조변수 alm 을 선언하고 그안에 ArrayList 생성자 메서드를 통해서 새롭게 생성된 객체의 주소값을 alm 안에 할당시켜 줍니다.

그후 드라이버 로딩과 DB를 연결해줍니다.

그후 86번문과 같이 쿼리실행을 위한 준비를해줍니다.

그후 쿼리실행 결과의 리턴값을 rs안에 담아줍니다.

그런다훔 while 문을통해서 rs.next가 true 값이 되면 while 문이 실행됩니다.

실행된 while 안에서는 DB안에 데이터행의 갯수만큼 값을 담기위해 계속해서 Member 클래스 타입의 객체참조변수 m 이 생성된다 . 그후 1번째로 생성된 m 의 주소값안에는 m주소값안에 set 메서드를 통해서 rs안에 get 메서드를 통해 DB안의 데이터가 Member 클래스를 통해 생성된 객체내에 셋팅됩니다. 그후 셋팅된 주소값을 add 를 통해 ArrayList로 선언된 객체 참조변수  alm 안에 m의 주소값을 할당해줍니다.

while문이기 때문에 갯수만큼  행동을 반복하게 됩니다. 2번째도 마찬가지로 Member 클래스를 통해 생성된 객체내에 셋팅됩니다. 그후 셋팅된 주소값을 add 를 통해 ArrayList로 선언된 객체 참조변수  alm 안에 m의 주소값을 할당해줍니다. 이런식으로 데이터의 갯수만큼의 주소값을 배열의 형태로 ArrayList타입의 alm 안에 주소값을 계속해서 할당해준후 while 문이 끝나면 그 배열의 형태의 주소값이 들어있는 배열 군집 alm 을 메서드 호출한 곳으로 리턴해줍니다.

그래서 m_list.jsp 에서 리턴받은데이터를 ArrayList클래스 타입의 객체참조변수 get_alm 안에 주소값들을 할당하고 for 문을 통해서 화면에 값들을 뿌려줍니다.

'학원에서 배운것들 > TEA - E' 카테고리의 다른 글

2017-05-29-E  (0) 2017.05.31
2017-05-23-E  (0) 2017.05.23
2017-05-15-E  (0) 2017.05.15
2017-05-09-E  (0) 2017.05.09
2017-05-08-E  (0) 2017.05.08
Comments