Java 에서 SQL 문을 실행하여 데이터를 관리하기 위한 Java API 입니다.

JDBC 는 다양한 데이터베이스에 대해서 별도의 프로그램을 만들 필요 없이, 해당 데이터 베이스의 JDBC 를 이용하면 하나의 프로그램으로 데이터베이스를 관리할 수 있습니다.

JDBC 연결 순서

  1. JDBC 드라이버 로드 - DriverManager

Class.forName("oracle.jdbc.driver.OracleDriver");

메모리에 Oracle Driver 가 로드됩니다.

  1. 데이터베이스 연결 - Connection

DriverManager.getConnection(JDBC URL, 아이디, 비밀번호);

Connection 객체를 생성합니다.

  1. SQL 문 실행 - Statement

connection.cresateStatement();

Statement 객체를 통해 SQL 문이 실행됩니다.

  1. 데이터베이스 연결 해제 - 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 연결 예제

  1. 변수 선언
<%!
	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";
%>
  1. 출력
<%
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