java program ------JDBC -------DB
JDBC : 하나의 프로그램으로 데이터베이스를 관리할 수 있다.
오라클을 설치하면 JDBC가 자동으로 설치되고, 이클립스에서 해당 클래스 파일을 복사하면 됨.
오라클 드라이버를 사용하기 위한 ojdbc6_g.jar 파일 복사
이클립스 설정되어 있는 JAVA클래스 패스 : C:\Program Files\Java\jre1.8.0_25\lib
오라클 JDBC 클래스 패스 : C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib\ojdbc6_g.jar
이 파일을 복사하여 java클래스 패스경로에 복사하면 자바프로그램에서 오라클 라이브러리를 이용할 수 있다.
참고 http://naltaengi.tistory.com/26,
SQL*PLUS 로그인 실패 해결 방법
SCOTT 계정이나 HR 계정으로 로그인을 하려고 했는데 계정이 잠겨있다거나 비밀번호가 생각이 나지 않을 경우!!!!
- 락(lock)을 풀어주기 위해서는 DBA 권한을 가진 사용자 계정으로 접속을 해야한다.
DBA는 기본적으로 계정이 활성화되어 있기 때문에 오라클을 설치했을 때 입력한 암호만 기억한다면 언제든지 로그인할 수 있다.
sys 혹은 system 계정으로 로그인 한다.
C:₩>sqlplus system/[오라클 설치 시 입력한 암호]
- SCOTT 사용자의 계정의 락(lock)을 해제한다.
SQL>alter user scott account unlock;
- ALTER문 : 데이터 베이스 객체의 속성을 변경하기 위한 DDL 명령문(ALTER문 다음에 user가 오면 사용자의 정보를 변경하겠다는 의미이다.)
- account unlock 명령문 : 잠금을 해제하는 명령문이다.
SCOTT 사용자 계정에 설정된 락이 풀렸다면, SCOTT으로 접속할 수 있다. SYSTEM 사용자로 로그인 된 상태라면, connect문을 사용하여 연결을 확인한다.
SQL> show user
SQL> connect scott/tiger
SQL> show user
JDBC 드라이버 로드 : DriverManager ------- Class.forName("oracle.jdbc.driver.OracleDriver"); 메모리에 오라클드라이버가 로드
데이버베이스 연결 : Connection ------ DriverManager.getConnection(JDBC URL 계정아이디, 비밀번호): Connection 객체 생성 합니다.
SQL 실행 : Statement ----- connection.createStatement(); Statement객체를 통해 SQL문이 실행 된다.
데이터베이스 연결 해제 -------- ResultSet : statement.executeQuery(), statement.executeUpdate()
: SQL문의 결과값을 Result객체로 받는다.
그리고 나서 close로 모두 닫는다.
Statemente 객체
Statement객체 executeQuery() : SQL 실행 후 여러 개의 결과 값 생기는 경우 사용한다. ex) select //반환값은 ResultSet
(interface)
executeUpdate() : SQL 실행 후 테이블의 내용만 변경할 경우 사용 ex) insert, delete, update //반환값은 Int
execute쿼리실행후 반환 되는 레코드 셋
executeQuery()-------------->ResultSet--------------------> BOF
첫번째 로우 데이터
두번째 로우 데이터
세번째 로우 데이터
..
N번째 로우 데이터
EOF
ResuletSet
next() : 다음 레코드로 이동
previous(): 이전 레코드로 이동
first(): 처음으로 이동
last(): 마지막으로 이동
get메소드 : getString, getInt
<%@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); //jdbc:oracle:thin:@localhost:1521:xe
statement = connection.createStatement(); //커리를 볼수 있는객체
resultSet = statement.executeQuery(query); //select * from member
반환되는 값(ResultSet) : next, previous,getstring 등등의 데이터를 가져온다.
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) {
} finally { 역순으로 자원해제
try{
if(resultSet != null) resultSet.close();
if(statement != null) statement.close();
if(connection != null) connection.close();
} catch(Exception e){}
}
%>
</body>
</html>
'프로그래밍 > jsp' 카테고리의 다른 글
19.데이터베이스-3 (회원가입 및 회원정보 프로그래밍) (468) | 2017.12.09 |
---|---|
20. 커넥션풀(DAO,DTO, PrepaaredStatement, 커넥션풀) (487) | 2017.12.08 |
데이터베이스 -1 (1199) | 2017.10.26 |
16.자바 빈 (1200) | 2017.10.24 |
15.예외처리 (1186) | 2017.10.24 |