본문 바로가기

Java

Java - JDBC 사용 및 DB 연결

@markdown

# Java JDBC 사용하기

____


## JDBC 연결 순서

____


<pre><code style="font-size:15px">1. driver load

2. Connection DB연결

3. Statement

4. SQL 문장 실행

5. 결과 받아와 처리

6. DB 연결해제

</code></pre>

<br>


### 1. Eclipse project에 JDBC 라이브러리 추가하기

____

- JDBC Driver Load

![](https://cloud.githubusercontent.com/assets/12658717/26191911/ba259d1e-3bea-11e7-9906-ad7b9318107d.png)


- 추가할 프로젝트 오른쪽 마우스 클릭

- `Build Path` -> `Configure Build Path`


![](https://cloud.githubusercontent.com/assets/12658717/26189007/6ba37934-3bdd-11e7-8486-5241c352334d.png)


- `Add External JARs` 클릭

 

![](https://cloud.githubusercontent.com/assets/12658717/26189002/64d18646-3bdd-11e7-91af-13b77cb9f8e7.png)

- `ojdbc6_g.jar` 열기

- `OK` 클릭

- JDBC Driver 등록완료

<br>


### 2. DB Connection 하기

____


- Oracle JDBC Driver 등록

<pre><code class="java" style="font-size:14px">String url = "jdbc:oracle:thin:@localhost:1521:xe";

Class.forName("oracle.jdbc.driver.OracleDriver");

Connection conn = DriverManager.getConnection(url, "hr", "hr");

</code></pre>


- 연결할 DB 주소 알아내기

![](https://cloud.githubusercontent.com/assets/12658717/26191933/cf5a84b0-3bea-11e7-8198-10112ff4ea65.png)

- `Data Source Explorer` -> `MyDB_HR` -> `Properties`


![](https://cloud.githubusercontent.com/assets/12658717/26189196/43137586-3bde-11e7-9ff7-02ba830dfb16.png)


- Connection URL 복사 후 getConnection()에 붙여넣기

<br>


### 3. Statement

____

- DB와 소통하는 통로


<pre><code class="java" style="font-size:14px">java.sql.Statement st = null; 

conn.createStatement();

</code></pre>

<br>


### 4. SQL 쿼리 실행

____

- SQL 쿼리 실행 후 결과값 ResultSet에 저장


<pre><code class="java" style="font-size:14px">String sql = "select * from employees";

ResultSet rs = st.executeQuery(sql);

</code></pre>

<br>


### 5. 결과값 처리

____

- ResultSet에 저장되어 있는 데이터 처리 부분


<pre><code class="java" style="font-size:14px">while(rs.next()){ //한건씩 처리

int empid = rs.getInt(1); //첫번째 칼럼 조회

String fname = rs.getString("first_name"); //컬럼이름도 지정 가능

int sal = rs.getInt("salary");

Date hireDate =  rs.getDate("hire_date");

System.out.println(empid+ "\t" + fname + "\t" + sal + "\t" + hireDate);

}

</code></pre>

<br>


### 6. DB 연결해제

- 쿼리 수행 후 DB 연결해제 부분


<pre><code class="java" style="font-size:14px">if(rs != null) rs.close();

if(st != null) st.close();

if(conn != null) conn.close();

</code></pre>

<br>


### 전체 소스코드

____

<pre><code class="java" style="font-size:14px">public class DBTest {

public static void main(String[] args) {

String url = "jdbc:oracle:thin:@localhost:1521:xe";

String sql = "select * from employees";

Connection conn = null;

java.sql.Statement st = null; //DB와 소통하는 통로

ResultSet rs = null; //결과 받아서 처리할때

try {

Class.forName("oracle.jdbc.driver.OracleDriver");

System.out.println("driver load 성공!");

conn = DriverManager.getConnection(url, "hr", "hr");

System.out.println("DB 연결 성공!");

st = conn.createStatement();

rs = st.executeQuery(sql); //쿼리 실행 후 데이터들이 rs 저장

while(rs.next()){ //한건씩 처리

int empid = rs.getInt(1); //첫번째 칼럼 조회

String fname = rs.getString("first_name"); //컬럼이름도 지정 가능

int sal = rs.getInt("salary");

Date hireDate =  rs.getDate("hire_date");

System.out.println(empid+ "\t" + fname + "\t" + sal + "\t" + hireDate);

}

} catch (ClassNotFoundException e) {

System.out.println("driver load 실패!");

e.printStackTrace();

} catch (SQLException e) {

System.out.println("DB 연결 실패!");

e.printStackTrace();

} finally {

try {

if(rs != null) rs.close();

if(st != null) st.close();

if(conn != null) conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

</code></pre>