JDBC 드라이버
JDBC : 자바로 작성된 프로그램과 데이터베이스의 상호 작용을 위한 인터페이스 규격이다.
프린터나 키보드, 마우스 등 컴퓨터에서 외부 기기를 사용하기 위해 가장 먼저 해야하는 것이 드라이버 설치이다.
이처럼 데이터베이스에서 (작성한)외부적인 프로그램을 사용하기 위해서는 드라이버를 다운로드 해야 한다.
각 데이터베이스 별 필요로 하는 드라이버를 다운받아야 한다. 각 제조사? 홈페이지에서 찾아볼수 있을 것이다.
나는 MySQL을 사용하므로 MySQL JDBC Driver을 다운로드 받으면 된다.
▶ JDBC MSQL 드라이버 다운로드
https://dev.mysql.com/downloads/connector/j/
JSP와 Database연결 (INSERT)
1. JDBC 드라이버를 사용하기 위한 준비
위의 링크에서 mySQL 드라이버를 다운받는다
그리고 다운받은 jar파일을 다음 경로의 라이브러리에 저장하며
JDBC객체를 사용하기 위해 jsp파일 내에 각각의 JDBC객체를 임포트를 한다.
드라이버 로딩.
2. Query실행을 위해 statement 또는 prepareStatement 객체 생성
JDBC의 객체로 객체참조변수를 선언하고 null로 초기화 하는 작업이다. sql 쿼리를 생성/실행하면서 반환된 결과를 가져오게 할 작업 영역을 제공한다. statment객체는 connection 객체의 리턴값을 주소값으로 가진다.
3. 예외처리
예외처리를 하기 위해 try - catch 문을 사용하였다. try부분에서 에러를 감지하게 되면 catch 부분에서 예외처리를 해주는 역할을 한다.
4. DataBase 연결 Connection
DataBase와 JSP파일을 연결하기 위해서는 기본적으로 DataBase의 정보가 필요로 한다.
- 아이피, 포트, 데이터베이스를 포함한 정보를 String타입 변수에 담는다.
- 유저 아이디를 String타입 변수에 담는다.
- 유저 패스워드를 String타입 변수에 담는다.
과정 1에서 임포트 한 DriverMager라는 클래스의 getConnection 메소드에 위에 선언한 데이터베이스의 정보를 가진 변수를 입력하고, Connection클래스타입 객체참조변수에 할당한다.
객체참조 변수에 DriverManager 클래스의 getConnection메소드를 할당할수 있는 이유는 DriverManager클래스의 getConnection메소드는 static으로 선언된 메소드이기 때문이다.
Connection 객체참조변수의 주소값에서 쿼리 실행을 위한 준비를 하며, 매개변수 sql에 쿼리 실행 문장을 받는다.
5. Query문 작성, Statement 객체 생성.
Query문을 Connection 클래스 데이터타입 객체참조 변수의 (리턴)값이 가리키는 클래스의 메소드 preparedStatement에 입력한 후 PreparedStatement클래스 데이터 타입 객체참조 변수에 할당한다.
이때 String타입 변수 sql 에 들어가야하는 문자형 데이터에는 Database에서 사용하는 sql언어인 쿼리 문장을 넣어야 한다. 이 쿼리 문장이 mySQL에서 실행되어 원하는 데이터 처리를 하는것이다.
INSERT 구문을 작성하는 과정에서, 5가지 데이터를 받는다. 이는 연결된 데이터베이스 테이블 tb_member의 존재하는 키에 입력할 데이터만큼의 갯수이다.
?에 들어갈 데이터는 순서대로 입력할수 있다.
위는 1번 ?자리에 m_id의 데이터를 입력하고, 2번 ?자리에 m_pw의 데이터를 입력하고, 물음표 순서대로 값을 넣겟다는 의미이다.
6. 쿼리실행
SELECT구문을 적용하는 쿼리 실행을 위해서는 excuteUpdate()문장을 사용하여야 한다.
이 문장 사용 시 데이터베이스에 입력한 값이 들어간다.
7. 객체 종료
메모리 낭비를 줄이기 위해 사용했던 객체들을 종료시킨다.
스코프처럼 먼저 안에서 실행되는 preparedStatement 객체부터 종료한다.
pstmt.close()- PreparedStatement 객체 종료
conn.closes()- Connection 객체 종료
'Web Language > JSP' 카테고리의 다른 글
JSP와 DB연결 - UPDATE * (0) | 2020.04.01 |
---|---|
JSP와 DB연결 - SELECT (0) | 2020.04.01 |
Session(세션) * (0) | 2020.04.01 |
include 활용 * (0) | 2020.04.01 |
jsp와 java 연결* (0) | 2020.03.31 |