Java 에서 SQL 문을 실행하여 데이터를 관리하기 위한 Java API 입니다.
JDBC 는 다양한 데이터베이스에 대해서 별도의 프로그램을 만들 필요 없이, 해당 데이터 베이스의 JDBC 를 이용하면 하나의 프로그램으로 데이터베이스를 관리할 수 있습니다.
JDBC 연결 순서
- JDBC 드라이버 로드 - DriverManager
Class.forName("oracle.jdbc.driver.OracleDriver");
메모리에 Oracle Driver 가 로드됩니다.
- 데이터베이스 연결 - Connection
DriverManager.getConnection(JDBC URL, 아이디, 비밀번호);
Connection 객체를 생성합니다.
- SQL 문 실행 - Statement
connection.cresateStatement();
Statement 객체를 통해 SQL 문이 실행됩니다.
- 데이터베이스 연결 해제 - ResultSet
statement.executeQuery(); , ` statement.executeUpdate();`
SQL 문의 결과값을 ResultSet 객체로 받습니다.
Statement 객체 살펴보기
executeQuery()
SQL 문 실행 후 여러개의 결과값이 생기는 경우에 사용한다. ex) select
반환형은 ResultSet 객체이다.
ResultSet 객체는 BOF 에 처음에 인덱스를 갖고 있고, 그 다음에 첫 번째 로우 데이터, 두 번째 로우 데이터 .. 식으로 있으며 마지막에 EOF 를 갖는다.
- next() : 다음 레코드로 이동
- previous() : 이전 레코드로 이동
- first() : 처음으로 이동
- last() : 마지막으로 이동
- getString(), getInt()
executeUpdate()
SQL 문 실행 후 테이블의 내용만 변경되는 경우에 사용한다. ex) insert, delete, update
JDBC 연결 예제
- 변수 선언
<%!
Connection con;
Statement stmt;
ResultSet set;
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String uid = "c##scott";
String upw = "tiger";
String query = "select * from member";
%>
- 출력
<%
try{
//연결하기
Class.forName(driver);
con = DriverManager.getConnection(url,uid,upw);
stmt = con.createStatement();
set = stmt.executeQuery(query);
//행 가져오기
while(set.next()){
String id = set.getString("id");
out.println("id: "+id);
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
//종료하기
if(set!= null) set.close();
if(stmt!= null) stmt.close();
if(con!= null) con.close();
}catch(Exception e){
e.printStackTrace();
}
}
%>
-
tip) Ping 연결이 안 된다면
String url = "jdbc:oracle:thin:@localhost:1521:orcl";에서 포트번호 다음에 있는 데이터베이스 이름을 오라클에서 확인하고 변경한다. -
tip) 값 출력이 안 된다면 sqlplus 에서 명령 작성 후
commit을 입력해보고 다시 해본다.
https://www.youtube.com/playlist?list=PLieE0qnqO2kTyzAlsvxzoulHVISvO8zA9
