- NEW초롱이의 하루
- kisa
- 길은 가면, 뒤에 있다
- C언어 예술가
- Zer0 day - Zer0 day
- Information Security
- Secure-EDU
- 앙큼한유채's 일상 Story
- Library of Ezbeat (잠정 폐쇄)
- The Factory
- 안드
- 모후모후의 커뮤니티
- 공학도의 잡다한 시선
- 안드2
- IT속에 코코아
- IP주소검색(whois)
- IP주소검색(좌표포함)
- 소프트웨어 경력 관리
- 해저 케이블 지도
- MAC주소검색
- IANA
- 포트번호검색
- 자신의IP확인
- 웹페이퍼캡처
- 나의패스워드보안등급
- 웹 취약점 분석
- IT용어정리
- GitHub
- 라이브러리 모음
- 웹마당넷
- 시스템콜참고
- BCD 변환
- 보안뉴스
- 코딩도장(C, Python)
- 백준알고리즘
- 코딩테스트 연습
- 웹 사이트 테스트
- 스크립트꾸미기
- ctf대회목록
- 전자신문
- hash 크랙
- CVE
- 도메인등록
- N클라우드
- BugBountyList
- 칼리공식사이트
- CR4FTING BOX
- 아스키코드 변환
- 웹 사이트 통계 및 평가
- PDF변환
- AWS 및 클라우드 정보
- 가상화 및 서버관련
- 티오리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 프로젝트
- GUI
- nginx
- 자바
- JSP
- 안드로이드
- Linux
- 클라우드
- 라즈베리파이
- RaspberryPi
- System
- 쉘 스크립트
- centos docker
- API
- docker
- 네트워크
- Tkinter
- 쉘 스크립트 if문
- synology
- Shell script
- 그라파나
- 리눅스
- Python
- 메소드
- Java
- 쉘 스크립트 기초
- GPIO
- Android
- ACL
- LEVIATHAN
- Today
- Total
IT창고
JSP DB활용, 자바빈, 커넥션풀 본문
이클립스와 마리아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 |