@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>
'Java' 카테고리의 다른 글
Java - AutoCloseable, Network 프로그래밍 (0) | 2017.05.29 |
---|---|
Java - MVC, 정적 쿼리, 동적 쿼리 (1) | 2017.05.21 |
Java 문법 - Generic, Collection, IO (0) | 2017.05.10 |
Java 문법 - String, Arrays, Thread (0) | 2017.05.08 |
Java 문법 - hashCode(), 객체 복제 (0) | 2017.05.02 |