실습환경
- 데이터베이스 프로그램 : 오라클 11g
- 자바 컴파일러 JDK 버전 7
- 데이터베이스와 자바를 연결하는 드라이버 : JDBC 드라이버(ojdbc6.jar)
데이터베이스 연동 자바 프로그래밍
- APP(자바) < -> RDBMS(oracle) 간의 연결이 필요함 : network 필요.
- 오라클은 TCP / IP 이기 때문에 App단에서 동일하게 TCP/IP로 접근해야 한다.
- jdbc = java database connection
데이터베이스 연동 자바 프로그램의 실행 흐름도
- Oracle에서 제공하는 라이브러리를 사용하기 위해서 Oracle 데이터베이스를 설치할 때 받았던 oracleexe 폴더 안에 있는 JDBC 파일을 Eclipse 프로젝트로 복붙 해준다.
- C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib\ojdbc6.jar
- libs에 넣어둔 ojdbc6.jar의 물리적 위치와 논리적 사용법을 연결시켜야 한다.
- project를 우클릭하여 Build path → Configure Build Path를 클릭한다.
- Java Build Path에서 Library를 클릭한다.
- Modulepath를 클릭한 후 Add Library를 클릭한다.
- Use Library를 생성한다.
5. User Libraries 클릭 후
6. New 버튼을 눌러
7. 원하는 이름으로 라이브러리를 생성한다.
8. 생성한 라이브러리를 클릭하여
9. Add JARs를 누른다.
10. 아까 추가한 ojdbc6.jar 파일을 불러준다.
11. 12. 클릭 끝
자바에서 SQL 쿼리 보내보기
- scott 계정에 접속하여 SELECT * from emp; 를 실행해 본다.
//Main code
package mycom.mytest;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class main {
public static void main(String[] args) {
//내 db 접속에 사용할 conn 변수
Connection conn = null;
//오라클 드라이버 경로 설정
String driver = "oracle.jdbc.driver.OracleDriver";
//내 db의 계정 경로 설정
String url = "jdbc:oracle:thin:@localhost:1521:xe";//localhost 자리에는 ip번호가 들어가도 됨
//접송 성공, 실패 여부 사용시 쓰는 변수
Boolean connect = false;
//db 접속 코드는 반드시 try~catch문 안에 써줘야함
try {
//오라클 드라이버 접속, 직접 부르는 함수 Class.forNanme을 통해 메모리에 올려준다.
Class.forName(driver);
//내 db 접속
conn = DriverManager.getConnection(url, "scott","TIGER");
//접속성공시 true 설정
connect = true;
Statement stmt = conn.createStatement();
String query = "select * from emp";
ResultSet rs = stmt.executeQuery(query);
while(rs.next()) {
System.out.print(rs.getString(1)+ "\\t");
System.out.println(rs.getString(2));
}
//접속 끊기, 끊는 이유 : 항상 db가 연결되어 있으면 접속 오류 및 데이터 충돌이 일어나기 떄문
if(rs != null) rs.close();
if(stmt != null) stmt.close();
if(conn != null) conn.close();
} catch (SQLException e) {
System.out.println("실패");
System.out.println(e);
} catch (ClassNotFoundException e){
System.out.println("드라이버가 유효하지 않습니다.");
}
}
}
실행결과
- EOR = end of record
- cursor는 한 줄씩 읽어내고 돌아갈 수 없기 때문에 rs로 한 줄의 모든 내용을 긁어와야 한다.
'Back > DataBase이론' 카테고리의 다른 글
7장 정규화 (0) | 2023.03.28 |
---|---|
6장 데이터 모델링 (0) | 2023.03.28 |
5장 데이터베이스 프로그래밍 - 1 (0) | 2023.03.27 |
4장 SQL 고급 (0) | 2023.03.27 |
3장 SQL 기초 (0) | 2023.03.23 |