오라클(Oracle)

(5) 오라클과 자바를 연동하는 법

주니홍 2022. 7. 4. 16:25

지금까지는 SQL과 오라클을 연동하여 사용하였지만,

JAVA와 오라클을 연동하여 SQL문법을 JAVA에서 사용해보자!

 

JDBC(Java Database Connectivity)는

자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다.

 

4단계를 꼭 암기하도록 하자!

1) DBMS와 연동을 하기 위한 드라이버가 필요

 

2) DB에 연결

 

3) 데이터를  write (INSERT, UPDEATE, DELETE),  read(SELECT)가 가능

 

4) DB와의 연결을 해제 ( ★ )

= 연결메모리가 계속 소모되기 때문에 장기적으로 안좋다

 

 

 

1. DBMS와 연동을 하기위한 드라이버가 필요

final String driverName ="oracle.jdbc.driver.OracleDriver";

Class.forName(driverName);

오라클 MYSQL 등등 고정된 드라이버 문자열이 존재한다

변수로 선언해 두면 사용하기 쉽고, 유지보수에 용이할 것이다

 

Class.forName( ) ; 은 try & catch로 감싸주어야 한다

 

 

 

 

 

2. DB에 연결

final String url = "jdbc:oracle:thin:@localhost:1521:xe";
final String user = "kim";
final String passwd="1234";

Connection conn =null;

conn=DriverManager.getConnection(url, user, passwd);

변수에 담아두고 사용하는 것이 좋고

 

Connection conn = null;스코프이슈 때문에 따로 초기화함

 

DriverManager.getConnection( ) ;

ㅡ> DB에 연결하는것이고URL , User, passwd를 차례로 인풋값에 대입 해준다

 

URL은 Data Source Explorer에서 사용중인 오라클에

ㅡ> 오른클릭 ㅡ> Properfies ㅡ> Driver Properfies 에서 확인할 수있다

 

DriverManager.getConnection() 은  try & catch문으로 감싸 주어야한다

 

 

 

 

3. 데이터를 write, read가 가능

Statement stmt = null;
stmt = conn.createStatement();

stmt.execute("INSERT INTO PRODUCT VALUES((SELECT NVL(MAX(PID),0)+1 FROM PRODUCT),'"+name+"',"+price+","+cnt+",'"+category+"')");
System.out.println("로그 : DB연결하여 쿼리문 실행완료");

stmt객체가 확보되어야

JAVA에서 SQL문을 작성할수 있게됨

stmt = conn.createStatement( ) ; ㅡ> 객체 확보

ㅡ> read (SELECT) ,  write (INSERT, UPDATE, DELETE) 사용 가능

 

stmt.execute( " SQL의 INSERT 사용 " );

 

SQL의 INSERT를 사용하여 로그가 정상적으로 출력되었다면

데이터 베이스에 INSERT한 내용이 저장되어 있음을 확인 할 수 있다 

 

conn.createStatement( ) ; try & catch를 해주어야 사용 가능하다

 

 

4. DB와의 연결을 해제

finally {
	try {
			stmt.close();
			conn.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

 

연결한 순서를 생각하며 해제해준다

1. stmt 끊기

2. conn 끊기

3. try & catch 문으로 감싸주기

 

 

 

 

 

공통적으로 사용 되는 try & catch문 한번에 정리하기

공통적으로 모두 try & catch로 감싸는 것이 있기때문에

try 바디안에 모두 적어주고

catch문에 최상위 Exception을 사용하여 감싸준다

이후 닫아주는 거 까지 준비해 놓으면

 

stmt을 이용하여 SQL문 작성이 가능해 졌다