관리 메뉴

IT창고

JSP DB활용, 자바빈, 커넥션풀 본문

프로그래밍/JSP

JSP DB활용, 자바빈, 커넥션풀

방구석여포 2018. 1. 28. 00:46

이클립스와 마리아DB가 서로 연동되어져있다면 다른 프로젝트를 만들어 DB를 활용해보겠습니다.


먼저 새로운 프로젝트에서 lib폴더에 mariadb-java-client-2.2.1.jar 파일 즉 드라이버가 있어야합니다.

없다면 드라이버를 넣어줍니다.

우선 만들어져있는 DB를 연결하겠습니다.



JSP에서 DB를 사용하기위해서는 try,catch문을 꼭 사용해야만 합니다.

DB를 연결하는 방법은 여러가지가 있지만 위와 같은 방법이 가장 정석이지만 가장 작업효율이 떨어집니다. 



이번에는 정적클래스를 만들어 DB를 연결시켜보겠습니다.

따로 클래스를 만들어 static으로 메소드를 만듭니다.


중요한건 꼭 마지막에 닫아주어야만합니다. 닫아주지 않을 경우 DB의 사용량이 많아져서 나중에는 오류가 납니다.


중간에 주석줄안에 있는곳부터 명령어를 사용하면 됩니다. 

테스트로 현재 시간을 가져와보겠습니다.


현재 시간을 잘가져오고 정상적으로 실행됨을 확인했습니다.


자바빈(JavaBeans)에 대해 알아보겠습니다.

자바빈은 웹 프로그래밍에서 데이터의 표현을 목적으로 사용하며 일반적인 구성으로 값을 저장하기 위한 필드, 값을 수정하기 위한 setter, 값을 읽기위한 getter 로 구성됩니다.


간단한 from을 만들고 데이터를 저장해서 전달하도록 하겠습니다.


먼저 자바빈을 사용하지않고 만들겠습니다.


따로 .jsp파일을 만들었습니다 try,catch문부터 많은 소스를 입력해야만 하는데 이번에는 따로 클래스를 만들어서 다른방식으로 데이터를 전송하겠습니다.


클래스를 따로 만들어 VO를 만듭니다.

겟터와 셋터를 만들고 to string으로 이클립스 소스 자동완성으로 만들면 VO파일하나 금방 만듭니다.


VO(value Object) : 데이터를 저장하기 위한 용도의 단순한 클래스

DTO(Data Transfer Object) : 값을 전달하기 위한 용도의 클래스


프로그래머에게는 둘다 같은 의미입니다.

VO클래스를 만들고 따로 .jsp파일을 만듭니다 이번에는 try,catch문을 사용하지않고 간단하게 끝냈습니다.


실제로 실행해서 양식을 작성하고 전송버튼을 눌러봅니다.



  값이 정상적으로 전송된걸 확인할수있습니다.


커넥션풀에 대해 알아보겠습니다.

커넥션풀은 데이터베이스와연결된 커넥션을 미리 만들어서 풀(pool) 속에 저장해 두고 있다가 필욯ㄹ때에 커넥션을 풀에서 가져다 쓰고 다시 풀에 반환하는 기법입니다. 특징으로 커넥션을 생성하는데 드는 연결시간이 소비되지않고 커넥션을 재사용하기 때문에 생성되는 커넥션 수가 많지않는 특징을 가지고 있습니다.


저는 DBCP API를 이용한 커넥션풀을 사용해보겠습니다.

저는 톰켓9 Ver을 사용하며 http://tomcat.apache.org/tomcat-9.0-doc/jndi-datasource-examples-howto.html 사이트에 톰켓 서버를 사용하는 DBCP 소스의 예제도 있습니다. 또한 라이브러리가 필요하며 tomcat-dbcp.jar파일은 톰켓 무설치 버전에 이미 있기에 추가 하지않겠습니다.


먼저 DB드라이버를 lib폴더에 넣어줍니다. mariadb-java-client-2.2.1

그리고 META-INF폴더안에 Context.xml 파일을 만듭니다.


자신의 DB정보를 입력합니다. Context.xml파일을 만들었다면 web.xml 파일에 리소스를 등록합니다.


web.xml파일에 리소스를 등록하며 주의사항은 name이 Context의 name과 같아야만 합니다. 

그럼 이제 제대로 작동하는지 확인해보겠습니다.



이름으로 정보를 찾기때문에 이름을 틀리게 적거나 오타가 나면 정상적으로 작동하지않습니다.


정상적으로 작동하는걸 확인할수있습니다.

커넥션폴도 클래스를 만들어 사용할수있습니다.


따로 클래스파일을 만들고 꼭 닫는 메소드를 만들어야합니다.


복잡했던 소스가 단 3줄로 정리할수있게 되었습니다. 실제로 실행해도 클래스를 만들기 전과 같은 결과가 나오며 클래스를 통해 더 확장성있게 개발할수있습니다.

'프로그래밍 > JSP' 카테고리의 다른 글

JSP Maven프로젝트 만들기  (0) 2018.02.06
JSP 웹 어플리케이션의 구성  (0) 2018.01.29
마리아DB 이클립스에 연동시키기  (1) 2018.01.21
JSP 액션태그,에러페이지,쿠키  (0) 2018.01.20
JSP 웹크롤링과 달력  (0) 2018.01.15
Comments