JDBC(Java Database Connectivity)는 자바와 DBMS를 연결시켜주는 API다. DBMS의 종류와는 상관없이 독립적으로 사용할 수 있고, 별도로 설치해야 한다. 이 JDBC를 사용하여 이클립스에서 DB 테이블 데이터에 접근할 수 있다. JDBC 설치 방법은 매우 간단하다.
JDBC / JDBC 드라이버 설치
먼저 MySQL 홈페이지 - DOWNLOADS - MySQL Community (GPL) Downloads 에서 Connector/J를 찾는다.

실행 시스템을 Platform Independent 로 선택하고 zip 파일을 설치하여 압축을 풀어준다.

마지막으로 폴더 내에 있는 jar 파일을 복사하여 이클립스 본인 프로젝트 WebContent 내 WEB-INF 의 lib 폴더에 붙여 넣기 해주면 끝난다. 이 JBDC 드라이버가 lib 폴더 안에 있어야 DB 연동 시 불러와서 사용할 수 있다.

DB 연결 - 사용
DB 연결을 하려면 사용할 DB가 있어야 한다. 전에 만들었던 jspdb에 새로운 테이블을 만들건데, 이번엔 워크벤치를 사용한다. 워크벤치에 로그인하여 내 db - Tables를 우클릭, create table을 누른다.

그리고 아래처럼 테이블명과 필드를 설정해준다. 엔터를 치면 다음 필드로 자동 넘어가고 esc를 누르면 빠져나온다.

이제 이클립스에서 DB 연동 코드를 작성한다. 1단계는 드라이버 로드, 2단계는 내 DB 연결이다.

2단계는 MySQL 도메인:포트번호/연결DB, 유저, 비밀번호 순으로 작성한다. 그리고 연결 확인용으로 출력문을 하나 작성했다. 1단계의 ClassName은 JDBC 버전마다 다르기 때문에, 따로 찾기 위해 MySQL 홈페이지 - DOCUMENTS - Connector/J 를 클릭한다.

그리고 아래 박스 친 경로로 들어오면 클래스 네임을 볼 수 있다.

다음 단계는 필요한 SQL문을 작성하여 DB 데이터에 접근하는 것이다. 먼저 form 태그로 입력값을 넘겨준다.

아래 Pro 페이지에서 전달받은 값을 저장하고 쿼리를 작성한다. insert문으로 id, password, name 값을 테이블에 넣는 것인데, values() 안에 ?를 적은 것은 보안을 위해서다. 물음표 없이 바로 정보를 적어버리면 DBMS로 전달되는 과정 중에 쿼리가 그대로 노출돼서 위험해진다. 이 ?들은 pstmt.set타입(물음표번호, 데이터) 으로 채우고 실행한다.

다른 update문이나 delete문도 쿼리 작성만 다를 뿐 모든 과정이 똑같다. 물론 물음표는 개수에 맞게 채워야 한다. 하지만 select문은 방식이 좀 다르다. CRUD의 insert, update, delete문은 테이블 데이터를 변경시키는 작업이고 select문은 데이터를 선별하여 가져오는 것이기 때문에, 전달받을 값이 없으며 작성 코드 또한 다르다.
select문으로 데이터를 꺼내기에 앞서 insert문이나 워크벤치를 이용하여 데이터를 몇 개 저장했다. 참고로 id는 PK(primary key)를 설정했기 때문에 중복이나 null이 불가능하다.

그리고 아래 코드처럼 작성하는데, 주의할 점으로 앞의 쿼리들과 다르게 executeQuery를 써야 한다. ResultSet은 DataSet을 저장하는 타입이고, rs.next()로 데이터의 행을 가리킨다. 여기서 while문을 사용했기 때문에 데이터 행이 존재하는 동안, 즉 모든 데이터 행을 출력하는 코드가 된다. while 대신 if를 쓰면 데이터 행 하나만 출력된다.

이렇게 코드를 실행하면 아래와 같이 출력이 된다.

'Study > JSP' 카테고리의 다른 글
| [JSP]커넥션풀/JNDI - 이클립스와 MySQL 연결 (0) | 2022.03.03 |
|---|---|
| [JSP]자바빈(JavaBean) - 이클립스와 MySQL 연결 (0) | 2022.02.20 |
| [JSP]세션(Session)과 쿠키(Cookie) (0) | 2022.02.10 |
| [JSP]내장객체, 액션태그, 영역객체(Scope) (0) | 2022.02.04 |
| [JSP]JSP와 폼 태그 (0) | 2022.01.25 |