JAVA
OracleDB - JAVA
baeksm
2021. 9. 22. 14:30
반응형
오라클 11g 기준으로
데이터 베이스 설치 드라이브 > app > UserName > product > 11.2.0 > dbhome_1 > jdbc > lib 폴더 안에 있는
ojdbc6.jar을
라이브러리 추가에서 선택하여 추가 해준다.
파일 구조에서 라이브러리 추가 된게 보인다면 성공.
자바 클래스 파일을 하나 생성해주고 아래의 내용을 붙여 넣는다.
import java.sql.Connection;
import java.sql.DriverManager;
public class OracleDBConn {
public static Connection getConnection()
{
Connection conn = null;
try {
String user = "admin";
String pw = "1234";
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, user, pw);
System.out.println("연결 성공.\n");
} catch(Exception e){
System.out.println("연결 실패");
e.printStackTrace();
}
return conn;
}
}
로컬호스트 DB를 사용하고, 오라클 DB 설치시 포트를 별도로 설정하지 않았다면, 위의 내용 대로, 포트를 별도로 설정 하였다면, 본인이 설정한 포트 번호를 1521 대신 넣으면 된다.
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class OracleDBTest {
public static void main(String args[])
{
Connection conn = null; // DB연결 상태
PreparedStatement pstm = null; // SQL 쿼리문 보내기.
ResultSet rs = null; // 쿼리문에 대한 반환값
try {
String quary = "";
conn = OracleDBConn.getConnection();
/*
INSERT
SELECT
UPDATE
DELETE
*/
} catch (SQLException sqle) {
System.out.println("Error");
sqle.printStackTrace();
}finally{
// DB 연결을 종료한다.
try{
if ( rs != null ){rs.close();}
if ( pstm != null ){pstm.close();}
if ( conn != null ){conn.close(); }
}catch(Exception e){
throw new RuntimeException(e.getMessage());
}
}
}
}
메인 메소드를 포함한 자바 클래스를 하나 생성해주고, 다음의 코드를 넣어준다.
주석 부분에 있는
INSERT / SELECT / UPDATE / DELETE 를 하나씩 코드를 넣고, 테스트 해보기 위해
CREATE TABLE TB_JAVA(
COL1 NUMBER(10),
COL2 VARCHAR(10),
COL3 VARCHAR(10)
);
오라클 DB 에 다음과 같이 TB_JAVA라는 테이블을 생성했다.
현재 TB_JAVA 테이블은 다음과 같이 아무런 데이터도 없는 상태인데,
// INSERT문
quary = "INSERT INTO TB_JAVA VALUES (?, ?, ?)";
pstm = conn.prepareStatement(quary);
for(int i=1; i<=10; i++){
pstm.setString(1,Integer.toString(i));
pstm.setString(2,"Test1");
pstm.setString(3,"Test2");
pstm.executeUpdate();
}
다음 코드를 실행하고, DB를 새로고침 해보면 아래와 같이 데이터가 들어있는 것을 확인 할 수 있고,
// SELECT문
quary = "SELECT * FROM TB_JAVA ORDER BY COL1";
pstm = conn.prepareStatement(quary);
rs = pstm.executeQuery(); //쿼리문 실행 결과 받아오기.
while(rs.next()){
String colum1 = rs.getString(1);
String colum2 = rs.getString(2);
String colum3 = rs.getString(3);
String result = colum1 +" / "+ colum2 + " / " + colum3;
System.out.println(result);
}
위의 SELECT 코드를 넣고 실행하여, DB와 비교해보면, 아래와 같이 내용이 동일 하게 보인다.
//UPDATE문
quary = "UPDATE TB_JAVA SET " +
"COL2 = ?," +
"COL3 = ?" +
"WHERE COL1 = ?";
pstm = conn.prepareStatement(quary);
pstm.setString(1,"Update1");
pstm.setString(2,"Update2");
pstm.setString(3,"3");
pstm.executeUpdate();
UPDATE 코드 및 실행 결과,
//DELETE문
quary = "DELETE FROM TB_JAVA " +
"WHERE COL1 = ?";
pstm = conn.prepareStatement(quary);
pstm.setInt(1, 4);
pstm.executeUpdate();
DELETE 코드 및 실행 결과.
입니당.