[JAVA] 자바 - JDBC (Java Database Connectivity) (Connection, DriverManager)
by mini_min[JAVA]
자바 - JDBC (Java Database Connectivity) (Connection, DriverManager)
자바와 오라클을 연동해서 본격적으로 프로그램을 만들 수 있게 되었다!!
✔️ JDBC 란?
자바에서 데이터베이스에 일관된 방식으로 접근할 수 있도록 제공하는 API 다!
- SQL 문장 실행 가능
- 자바에서 데이터베이스 접속!
⭐ JDBC API 클래스와 인터페이스는 자바 패키지 java.sql 과 javax.sql 에 포함되어 있다!
⭐ 특징 : JDBC 는 ANSI SQL-92 표준을 지원, 공통된 SQL 인터페이스를 바탕으로 만들어진다.
✔️ JDBC 드라이버
JDBC API 를 통해 데이터베이스 연결을 제공한다.
✔️ JDBC 예외처리
데이터베이스 액세스 및 query 관련된 부분은 대부분 SQLException 예외처리를 해줘야한다.
📓 SQLException : 데이터베이스 액세스 에러 및 그 외의 에러에 대한 정보를 제공하는 예외이다.
-- 주요 메소드
int getErrorCode() //고유의 예외 코드 리턴
void setNextException() //SQLException 객체를 체인 끝에 추가한다.
SQLException getNextException() //setNextException() 에 의해 SQLException 객체에 체인 된 예외를 반환한다.
String getSQLstate() // SQLException 객체와 관련된 SQL 의 에러 상태 리턴
📓 SQLException 하위 클래스
: 무결성 제약조건 위반하는 경우 = SQLIntegerityConstraintViolationException
: 데이터 반환 오류일 때 : SQLDataException
✔️ JDBC DriverManager 클래스
DriverManager 는 JDBC 드라이버를 관리하기 위한 기본 클래스다.
데이터베이스 드라이버를 선택하고 새로운 데이터베이스 연결을 생성하는 기능을 한다.
📓 JDBC 4.0 미만은 수동으로 JDBC 드라이버를 로딩해야한다!
(Class.forName() 메소드 명시 필수 ⭐)
📓 드라이버 클래스 : oracle.jdbc.driver.OracleDriver
✔️ JDBC Connection 클래스
특정 데이터베이스 (DBMS) 와의 연결 (Session) 을 나타내는 객체다!
해당 객체는 쿼리를 실행하는 Statement / PreparedStatement 등의 객체를 생성하거나 Commit/Rollback 등의 트랜잭션 처리를 위한 메소드를 제공하다.
⭐ Connection 객체는 DriverManager.getConnection() 메소드를 호출해 얻는다.
-- 실제 DriverManager 와 Connection 객체 생성 코드
public class DBConn {
private static Connection conn;
// 외부객체 생성 못하게 막은 것
private DBConn() {
}
💡 Connection 을 가져와야 모든 걸 할 수 있다.
conn 객체로 로그인하는 개념 !
url 은 "jdbc:oracle:thin:@//오라클서버주소:포트번호/SID"
public static Connection getConnection() {
String url = "jdbc:oracle:thin:@";
String user = "유저명";
String pwd = "비밀번호";
if (conn == null) {
try {
//OracleDriver 로딩(JDK 7.0 이상부터는 생략 가능)
Class.forName("oracle.jdbc.driver.OracleDriver");
//Connection 객체 반환
conn = DriverManager.getConnection(url, user, pwd);
} catch (Exception e) {
e.printStackTrace();
}
}
return conn;
}
💡 static : 객체 생성 안해도 접속 만들 수 있게함
Class.forName 명시해야함! (오라클 드라이버 클래스 정보 로딩 ....)
⭐ conn ~ : Connection 객체 생성문 ....
-- 접속 해제하기
// 접속 해제하기
public static void close() {
if(conn != null) {
try {
if( ! conn.isClosed()) {
conn.close(); //Connection 객체 close
}
} catch (Exception e) {
}
}
conn = null;
}
✔️ 연결 확인하기!
public static void main(String[] args) {
//Connection 테스트
Connection conn = DBConn.getConnection();
System.out.println(conn);
}
'Java' 카테고리의 다른 글
[JAVA] 자바 - JDBC Statement (SELECT 문 / executeQuery / ResultSet) (0) | 2022.08.21 |
---|---|
[JAVA] 자바 - JDBC (Statement / createStatement / executeUpdate) (0) | 2022.08.21 |
[JAVA] 자바 - Class 클래스로 객체 생성 방법! (0) | 2022.08.03 |
[JAVA] 자바 - String 클래스 정보 얻기 (0) | 2022.08.03 |
[JAVA] 자바 - Enumeration 인터페이스와 Properties (0) | 2022.08.03 |
블로그의 정보
개발자 미니민의 개발로그
mini_min