데이터베이스와 JDBC를 이용한 JSP와의 연동
JDBC(JAVA DATAbase Connectivity)
- JDBC 드라이버가 없을 때 500에러가 뜨게 됨
이클립스에 데이터베이스 연동
- 버전은 6이나 7을 많이 사용하며, 이들은 오라클에서 제공하는 라이브러리에 있음
JDBC를 이용한 데이터베이스 연결
- 순서가 존재한다.
오라클에서 연결
- 아래의 2개가 getConnection의 url값
- jar파일을 tomcat9.0에 복사해서 옮겨야 함
<예제>
MySql 연결
- 오라클과 MySql에서의 형태가 조금씩 다른 것을 알 수 있음
- 다운 이후에 8.0 command line client 실행
- show databases;
- create database jspdb;
- sql 커넥터에 있는 jar 파일 tomcat에 복사
JDBC를 이용한 데이터베이스 조작
- 앞선 내용들이 1, 2의 과정
3단계에서
- select문은 쿼리메소드
- insert같은건 업데이트메소드
excuteQuery() 메소드와 select문
- 조회
- 조회 결과를 rs객체에 담는다.
- rs객체에 next메소드를 붙여서 값이 있으면 참 나오도록
- 값을 가져올 때는 rs객체에 getString메소드로(괄호 안의 내용은 컬럼 명으로 해당 값 가져옴)
- rs객체에서 사용할 수 있는 메소드들로 대부분은 next메소드 사용
- 이전행, 첫번째 행, 마지막 행
- 실행한 반대 순서대로 close(rs - state인 select - 위의 con)
<예제 - 오라클 출력>
- SQL디벨로퍼에서 MEMBER2 테이블 생성
- 테이블에 값 삽입
- commit;
- doctype부분을 지우고 선언문 삽입
- body 안에 내용
- 먼저 테이블을 생성
- conn, stmt, rs에 값 넣어줌
- 만든 테이블의 각 행과 열에 맞춰서 값을 바로 가져올 수 있도록 표현문 사용
- 오류가 날 경우 catch문으로 오류 메시지 출력
- finally에서 rs, stmt, conn순으로 종료
<예제>
- 데이터베이스를 바꿈
- 이후에 테이블 제작
- 약간 다른 형태로 테이블 생성
- 오라클과는 타입에 차이가 있음
- 데이터 삽입
- 위의 예제와 달라진 부분은 타입이 int로 바뀐 class를 출력하는 부분
<문제 - MySql로 위와 같이 출력>
excuteUpdate() 메소드와 insert문
<예제>
- addForm.html
- addMember.jsp
- 추가 작업을 누르면 form부분으로 돌아가고, 검색 작업을 누르면 viewMember.jsp로 가게 됨
- 추가에 성공하면 입력한 정보가 테이블에 추가된 것을 확인 가능
- 한글은 그냥 입력하면 깨져서 입력됨
- 모두 utf-8로 바꾼 다음에 저렇게 해주면 한글이 나오게 됨
- request.setCharacterEncoding("utf-8");도 안먹히면
- response.setContentType("test/html; charset=utf-8"); 이거를 body에 넣어서 실행
위의 내용을 MySql로 나타낼 때는 앞에서 한거처럼 두 부분만 바꿔주면 됨
이클립스로 MySql과 연동
open scrap book
- 선택하고 alt+x