JDBC를 통해 SQL CREATE 문을 작성해보자.
이클립스와 ORACLE을 연동하는 방법에 대해 알아보려면 밑에 링크를 확인하자
먼저 oracle에서 MEMO_TABLE을 만드려고할 때 쿼리를 작성해보면 다음과 같다.
SQL문을 통해 MEMO_TABLE 을 생성
SQL developer에서 작성한 쿼리다. 컬럼은 각각 no, name, message, wdate를 넣었다. 실행시키면 테이블이 생성되니까 실행시키지는 말고 이 문장을 JDBC연동해서 이클립스에서 실행시켜보자
1. 기본적인 코드 구성
기본적인 코드는 다음과 같다.
1) 드라이버 객체화
Class.forName("oracle.jdbc.driver.OracleDriver");
2) DB와 연결
Connection con = DriverManager.getConnection();
3) 실행도구 생성 (sql문을 실행시키기위한 Statement 객체 얻어오기)
Statement stmt = con.createStatement();
4) SQL문 실행
stmt.execute(sql);
5. DB연결 종료(자원 반납)
stmt.close();
con.close();
2. 코드 작성
import java.sql.*;
class JDBCTest {
public static void main(String[] args) {
try{
// 1. 오라클 드라이버 로딩
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("Driver Loading Success!!");
// 2. DB와 연결
String url="jdbc:oracle:thin:@localhost:1521:XE";
String user="scott", pwd="tiger";
Connection con=DriverManager.getConnection(url, user,pwd);
System.out.println("DB 연결 성공!!");
// 3. SQL문 작성
String sql="CREATE TABLE MEMO_TABLE (";
sql+="no number(4) primary key,";//글번호
sql+="name varchar2(30) not null,";//작성자
sql+="msg varchar2(100),";
sql+="wdate date default sysdate)";
// 4. sql문을 실행시키기위한 Statement객체 얻어오기
Statement stmt=con.createStatement();
// 5. Statement의 execute(String sql)메소드를 이용해서 sql문 실행
boolean b=stmt.execute(sql);
System.out.println("b="+b);
System.out.println("Memo테이블 생성 성공!!");
// 6. DB와 연결된 자원들 반납
if(stmt!=null) stmt.close();
if(con!=null) con.close();
}catch(ClassNotFoundException e){
System.out.println("드라이버 로딩 실패!");
e.printStackTrace();
}catch(SQLException e) {
System.out.println("SQL오류: Memo테이블이 생성되어 있는지 확인하세요");
e.printStackTrace();
}
}
}
출력 - 테이블 생성 성공
Driver Loading Success!!
DB 연결 성공!!
b=false
Memo테이블 생성 성공!!
boolean execute(String sql) String 타입의 sql문을 실행시킨다.
이때 sql문이 select문이면 true를 반환하고 select문 이외의 문장이면 false를 반환한다.
3. 테이블이 생성되었는지 확인
이제 실제로 테이블이 생성됐는지 SQL developer를 통해 확인해보자.
- 테이블이 생성됐는데 코드를 재실행했을 경우
출력 - 테이블 생성 실패
Driver Loading Success!!
DB 연결 성공!!
SQL오류: Memo테이블이 생성되어 있는지 확인하세요
java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing object
DB연결은 성공했지만, 테이블을 생성하는 SQL문을 실행할 때 이미 같은 이름의 테이블이 생성되었기 때문에
SQLSyntaxErrorException이 발생한다.
'프로그래밍 > JDBC' 카테고리의 다른 글
알기 쉬운 JAVA JDBC INSERT문 작성 방법에 대해 알아보자 (0) | 2020.06.12 |
---|---|
알기 쉬운 JAVA JDBC 연동 방법에 대해 알아보자 (3) | 2020.06.09 |