Sio's Programming
데이터 베이스 Oracle (JDBC, Statement객체) 본문
JDBC 살펴보기
JAVA 프로그램에서 SQL문을 실행하여 데이터를 관리하기 위한 JAVA API 입니다.
JDBC의 특징은 다양한 데이터 베이스에 대해서 별도의 프로그램을 만들 필요 없이, 해당 데이터 베이스의 JDBC를 이용하면
하나의 프로그램으로 데이터베이스를 관리 할 수 있습니다.
우리는 Oracle을 사용하므로, Oracle용 JDBC를 사용하며, 이것은 오라클을 설치하면 자동으로 설치 되고,
이클립스에서 해당 클래스 파일을 복사하면 됩니다.
오라클 드라이버를 사용하기 위한 ojdbc6_g.jar 파일 복사
C:\down\OracleXE112_Win64\DISK1 // 오라클 설치경로에서 ojdbc6_g.jar 복사해서
C:\Program Files\Java\jre1.8.0_161\lib\ext // 자바 설치 폴더 ext 폴더 안에 ojdbc6.g.jar 붙여넣기
JDBC 살펴보기
데이터 베이스 연결 순서
JDBC 드라이버 로드 |
DriverManager |
Class.forName("oracle.jdbc.driver.OracleDriver"); |
데이터베이스 연결 |
Connection |
DriverManager.getConnection(JDBC URL, 계정아이디, 비밀번호); : Connection객체 생성 합니다. |
SQL문 실행 |
Statement |
connection.createStatement(); :Statement객체를 통해 SQL문이 실행 됩니다. |
데이터 베이스 연결 해제 |
ResultSet |
statement.executeQuery(), statement.executeUpadate() :SQL문의 결과값을 ResultSet객체로 받습니다. |
드라이버 로드 -> 데이터베이스 연결 -> SQL문 실행 -> 데이터 베이스 연결 해제
Statement 객체 살펴보기
<interface> Statement |
executeQuery() |
SQL문 실행 후 여러 개의 결과값 생기는 경우 사용 합니다. 예)select |
executeUpdate() |
SQL문 실행 후 테이블의 내용만 변경되는 경우 사용 합니다. 예)insert, delete, update |
executeUpdate()는 반환형이 int이다
excuteQuery() 실행 후 반환 되는 레코드 셋
executeQuery() |
ResultSet |
BOF |
next():다음 레코드로 이동 previous() :이전 레코드로 이동 first() : 처음으로 이동 last() : 마지막으로 이동 get메소드 (getString, getInt) |
첫번째 로우 데이터 |
|
두번째 로우 데이터 |
||
세번째 로우 데이터 |
||
N번째 로우 데이터 |
||
EOF |
BOF 부터 접근할수 있음 BOF ~ EOF
예제 :
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 51 52 53 54 55 56 57 58 | <%@page import="java.sql.DriverManager"%> <%@page import="java.sql.ResultSet"%> <%@page import="java.sql.Statement"%> <%@page import="java.sql.Connection"%> <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <%! Connection connection; Statement statement; ResultSet resultSet; String driver = "oracle.jdbc.driver.OracleDriver"; String url = "jdbc:oracle:thin:@localhost:1521:xe"; String uid = "scott"; String upw = "tiger"; 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 name = resultSet.getString("name"); String phone = resultSet.getString("phone"); out.println("아이디 :" + id + ",패스워드 :" + pw + ",이름 :" + name + ",전화번호 : " + 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 |
'Programming > DB' 카테고리의 다른 글
| 커넥션풀 (DAO, DTO, PreparredStatement, 커넥션 풀(DBCP) (0) | 2018.05.09 |
|---|---|
| 데이터 베이스 (Oracle GUI 툴 설치, 회원가입 및 회원정보 수정) (0) | 2018.05.09 |
| 데이터 베이스 Oracle (설치,계정생성,SQL문 익히기) (0) | 2018.05.09 |