2021.12.13 TIL

서승원·2021년 12월 13일
0

TIL

목록 보기
35/68

O-R Mapping
O-R 매핑이란 데이터베이스의 개념들을 Programming의 개념으로 매칭하는 규칙을 말한다.
Connection은 배웠다시피 값이 비싼 자원이기 때문에 필요한만큼 사용 후 닫아줘야하는데, 사용하는 입장에서는 결과값을 더 다룰 필요가 있을 수 있다. 그럴 경우를 위해 SELECT 결과 값을 java 내부적으로 옮겨두고 connection은 닫아주는 것이다.
간단하게 정리하면 Table은 Class로 바꿔 VO(Value Object) ,DTO(Data Transfer Object) 라고 부르고, Record는 Instance로, Field는 Property( 멤버변수 , Getter, Setter) 로 옮겨주는 것이다.
1.Table
jdbc에서 정의된 Table을 Class로 정의해서 DTO,즉 데이터를 담아서 나르는 역할을 하게 한다.
2.Property
정의된 Class, 즉 VO 안에서 정의된다.위와 같이 먼저, Int가 아닌 Integer의 형태로 no를 정의한다. 그 이유는 jdbc의 int값의 경우 null 값을 입력하는 경우가 있지만, java의 int 는 null 값을 허용하지 않기 때문이다. 다음으로 getter인 getNo() 를 함수로 정의하는데, 직접 멤버 변수에 접근하지 않고 getNo()라는 함수를 통해서 접근하는 이유는 멤버변수가 public 할 시 , Class를 이용해 인스턴스를 생성하거나, 해당 class로부터 상속받은 class를 생성했을 때 멤버변수를 오버라이딩 할 수 없어 멤버변수에 직접 접근했을 때, 값이 오버라이딩된 함수의 값과 다르거나, 인스턴스를 캐스팅 했을 때, 다시 멤버 변수의 값이 변하는 등의 이름이 같고, 값이 다른 멤버변수들에 의한 혼동을 막기 위함이다.
다음으로, setNo() 으로 세터를 정의한다. 멤버 변수의 값을 getter와 마찬가지의 이유로 함수를 통해 입력하도록 한다.

서버 게시

notepad 에서 작성한 html 문서를 FileZila 를 이용해서 서버에 업로드 후 웹에서 접근한다. 작성한 문구가 그대로 출력되는 것을 볼 수 있다.

이번엔 java를 사용해 for문을 사용한 코드를 jsp 포맷의 파일에 작성해 게시했고, java로 작성된 코드 역시 정상적으로 출력된다.

위에서 O-R Mapping을 통해 만든 방명록 코드이다. jdbc에 작성된 방명록 table을 Test01DTO의 인스턴스에 옮겨서 입력한 후, Connection이 닫힌 후에 출력한다. 이 코드를 jsp 파일로 만들어 웹에서 출력하게 해볼 것이다.

가장 먼저, VO class를 class 파일로 먼저 작성한다. 서버에서 사용할 수 있도록 class를 따로 작성한 후 업로드하여 서버 내에서 동작하는 jsp 파일이 사용할 수 있게 한다.

작성한 jsp 파일이다. 가장 먼저 만든 파일과 동일한 구조이지만 O-R Mapping을 통해 인스턴스에 table의 정보를 옮겨온 것만이 다르다. getInt, getString을 통해 각각의 필드의 데이터를 가져온 뒤, Property들을 이용해서 인스턴스에 대입한다. 그 후 Instance들의 List에 추가해서, Connection이 닫힌 후에도 사용할 수 있도록 코딩했다.

profile
2년차 백엔드 개발자, crimy

0개의 댓글