
: 관계형 DB에 저장된 데이터를 접근/조작할 수 있게 하는 API




import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConnection {
// public static Connection dbConn;
public static Connection getConnection(){
Connection conn = null;
try {
String user = "c##smart01"; //사용자 계정
String pw = "oracle01"; //비밀번호
String url = "jdbc:oracle:thin:@localhost:1521:xe";
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, user, pw);
System.out.println("Database에 연결되었습니다.\n");
} catch (ClassNotFoundException cnfe) {
System.out.println("DB 드라이버 로딩 실패 :"+cnfe.toString());
} catch (SQLException sqle) {
System.out.println("DB 접속실패 : "+sqle.toString());
} catch (Exception e) {
System.out.println("Unkonwn error");
e.printStackTrace();
}
return conn;
}
public static void main(String[] args) {
DBConnection.getConnection();
}
}
Class.forName("oracle.jdbc.driver.OracleDriver"); : Oracle의 JDBC 드라이버 클래스 로드 → 자동으로 드라이버 인스턴스 생성하여 DriverManager에 등록 (해당 드라이버가 없으면 ClassNotFoundException 오류 발생)Connect conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "계정이름", "비밀번호"); : getConnection()메소드로 DB에 연결하여 Connection객체 리턴Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select문");rs.next() / rs.previous() : 커서를 다음/이전 행으로 이동rs.first() / rs.last() : 커서를 첫번째/마지막 행으로 이동rs.close() : ResultSet 객체 DB와 JDBC 리소스 즉시 반환rs.getXxx(String "열이름") : 지정된 열이름에 해당하는 데이터 반환rs.getXxx(int 열번호) : 지정된 열 인덱스에 해당하는 데이터 반환Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from 테이블명"); //모든 데이터 가져오기
ResultSet rs = stmt.executeQuery("select 열이름 from 테이블명"); //특정 열 검색
ResultSet rs = stmt.executeQuery("select 열이름 from 테이블명 where 조건"); //조건 검색
//검색한 데이터 출력
while(rs.next()){ //다음행이 있으면
System.out.print(rs.getString("컬럼명")); //데이터 출력
}
rs.close(); //DB와 JDBC리소스 즉시 반환
stmt.executeUpdate("insert문/update문/delete문")Statement stmt = conn.createStatement();
int n = stmt.executeUpdate("insert into 테이블명 values(값,...)"); //레코드 추가
int n = stmt.executeUpdate("update 테이블명 set 열이름=값,..."); //레코드 수정
int n = stmt.executeUpdate("delete from 테이블명"); //레코드 삭제
//n은 sql문 수행으로 영향 받은 행의 개수