oracle 을 사용해 이클립스와 연동을 시도해봤지만
이상하게 에러가 뜨면서 잘 되지 않았다. (구글링 해도 나와 같은 에러는 거의 없었다ㅜㅜ)
결국 oracle 대신 mysql을 사용하기로 하고
mysql 홈페이지에서 connector 를 다운받아 라이브러리에 추가해주니 성공적으로 연동되었따
1. 데이터베이스 생성
> CREATE DATABASE 데이터베이스명
> USE 데이터베이스명
데이터베이스를 만들어주고
해당 데이터베이스를 사용할 수 있게 한다.
> SHOW DATABASES
모든 데이터베이스를 볼 수 있다.
> CREATE TABLE 테이블명
test 데이터베이스 안에 table 을 생성해준다.
> INSERT INTO 테이블명 VALUE
개체를 삽입해준다.
> SELECT * FROM 테이블명
삽입한 뒤 모습이다.
2. JDBC MySQL Connector Library 추가
https://dev.mysql.com/downloads/connector/
mySQL 홈페이지에서 connector 를 다운받을 수 있다.
다운받은 파일의 압축을 풀면 jar 파일이 있을 것이다.
해당 jar 파일을 eclipse 내 Java build path 설정에 추가해주면 된다.
나는 이렇게했더니
java.lang.classNotFoundException: com.mysql.jdbc.Driver
에러가 떠서
해당 jar 파일을 직접 jre의 라이브러리 폴더에 넣어주었다.
3. JSP 파일에서 데이터 불러오기
DataTest.jsp
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | <%@ page import="java.sql.*" %> <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <%! Connection connection = null; Statement statement; ResultSet resultSet; String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/test"; String uid = "autumn"; String upw = "8386"; String query = "select * from member"; %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR"> <title>Insert title here</title> </head> <body> <% try{ Class.forName(driver); connection = DriverManager.getConnection(url, uid, upw); statement = connection.createStatement(); resultSet = statement.executeQuery(query); while(resultSet.next()){ String id = resultSet.getString("id"); String pw = resultSet.getString("pw"); String phone = resultSet.getString("phone"); out.println("ID : " + id + ", PW : " + pw + ", PHONE : " + phone + "<br/>"); } }catch(Exception e){ e.printStackTrace(); }finally{ //모든 자원 해제 try{ if(resultSet != null) resultSet.close(); if(statement != null) statement.close(); if(connection != null) connection.close(); }catch(Exception e2){ e2.printStackTrace(); } } %> </body> </html> | cs |
JSP 파일에서 데이터베이스를 연결하는 과정은 다음과 같다.
jdbc 드라이버 로드 -> 데이터베이스 연결 -> SQL문 실행 -> 데이터베이스 연결해제
jdbc 드라이버 로드
1 2 3 4 | <% String driver = "com.mysql.jdbc.Driver"; Class.forName(driver); %> | cs |
위 코드를 통해 메모리에 mysql 드라이버가 로드된다.
데이터베이스 연결
1 2 3 4 5 6 7 8 | <% String url = "jdbc:mysql://localhost:3306/test"; String uid = "autumn"; String upw = "8386"; Connection connection = null; connection = DriverManager.getConnection(url, uid, upw); %> | cs |
connection 객체를 통해 데이터베이스를 연결해준다.
oracle 데이터베이스를 사용한다면 driver와 url을 oracle로 변경해주면 된다.
SQL문 실행
1 2 3 4 | <% Statement statement; statement = connection.createStatement(); %> | cs |
statement 객체를 통해 sql문을 실행한다.
1 2 3 | <% resultSet = statement.executeQuery(query); %> | cs |
그리고 이렇게 결과를 저장할 수 있는데,
executeQuery() : sql문 실행 후 결과값이 나타나는 경우(ex. SELECT)
executeUpdate() : sql문 실행 후 테이블 내용만 변경되는 경우(ex. INSERT, DELETE, UPDATE)
에 사용한다.
executeQuery()의 리턴형은 ResultSet 객체이고
executeUpdate()의 리턴형은 변경된 레코드의 갯수가 int형으로 나타난다.
데이터베이스 연결해제
1 2 3 4 5 | <% if(resultSet != null) resultSet.close(); if(statement != null) statement.close(); if(connection != null) connection.close(); %> | cs |
결과페이지
'JSP, Servlet > Summary' 카테고리의 다른 글
JSP/Servlet : Expression Language (0) | 2017.01.23 |
---|---|
JSP/Servlet : DAO, DTO, Connection Pool (0) | 2017.01.22 |
JSP/Servlet : 데이터베이스, 기본SQL문 (0) | 2017.01.13 |
JSP/Servlet : 예외 페이지 (Exception Page) (0) | 2017.01.09 |
JSP/Servlet : 자바 빈(Bean) (0) | 2017.01.09 |