지금까지는 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문 작성이 가능해 졌다
'오라클(Oracle)' 카테고리의 다른 글
(6) 자바에서 SQL을 이용해 CRUD 표현하기 (0) | 2022.07.04 |
---|---|
(4) SQL 기초 (조인 JOIN) (0) | 2022.07.04 |
(3) SQL기초 (페이징처리) (0) | 2022.07.04 |
(2) SQL기초 (HAVING, GROUP BY 절) (0) | 2022.07.04 |
(1) SQL 기초 (0) | 2022.07.04 |