JDBC

 | JAVA
2012. 5. 8. 18:31

JDBC[제이디비씨]자바로 작성된 프로그램을, 일반 데이터베이스에 연결하기 위한 응용프로그램 인터페이스 규격이다. 이 응용프로그램 인터페이스는 데이터베이스 관리시스템에 넘겨질 SQL 형태의 데이터베이스 접근요구 문장을, 각 시스템에 맞도록 바꾸어준다. 처리 결과도, 이와 비슷한 인터페이스를 통해 얻게된다. JDBC는 ODBC와 아주 유사해서, 조그만 연결 프로그램만 있으면, ODBC 인터페이스를 통해 데이터베이스에 연결하는 JDBC 인터페이스를 사용할 수 있다. 예를 들어, 다수의 운영체계 플랫폼 상에 있는 많은 데이터베이스 제품들을 연결하도록 설계된 프로그램을 작성할 수 있으며, JDBC 문장을 사용한 프로그램은 심지어, 윈도우95에서 운영되는 마이크로소프트 액세스 데이터베이스에 접근하는 것도 가능할 것이다.

JDBC는 실제로는 두 계층의 인터페이스로 구성되어 있다. 주 인터페이스 외에도 JDBC "manager"에서 나온 API 가 있는데, 이것의 역할은 개별 데이터베이스 제품의 드라이버들과 차례대로 통신을 하는 것이다. 이때, 만약 필요하다면 JDBC-ODBC bridge와, 그리고 자바 프로그램이 원격 데이터베이스를 액세스하기 위해 네트웍 환경에서 실행되고 있다면 JDBC 네트웍 드라이버 등과의 통신도 수행한다.

JDBC가 원격 데이터베이스에 접근할 경우에는, 인터넷 파일 주소 구조의 강점을 이용하는데, 파일이름이 웹페이지 주소(URL) 체계와 아주 유사하게 보인다. 예를 들어, 자바 SQL 문장에서는, 다음과 같은 주소를 통해 원하는 데이터베이스를 인식할 수 있다.

 

jdbc:odbc://www.somecompany.com:400/databasefile

 

JDBC 는 커넥터 jar 파일이 있어야 하며. 보통

D:\tools\oraclexe\app\oracle\product\10.2.0\server\jdbc\lib // 위치에 잇다.

 파일명은 ojdbc14.jar 을 복사 하여 프로젝트 에 붙여 넣기 한후에 .  위의 그림처럼 패키지 마우스 오른쪽 프로퍼티브 후에 자바빌드 패치로 이동 하여 add jars 클릭후 붙여 넣은 ojdbc14.jar을 추가 한다.

 

이후 Connect 생성자 생성이 가능 하다.

 

이후 DAO 파일 생성시에 Arraylist의 제너레이션을 위한. simple.java 생성.

package kr.hun.bean;

public class Simple {
    private int sid=0;
    private String name="";
    private String tel="";
    public int getSid() {
        return sid;
    }
    public void setSid(int sid) {
        this.sid = sid;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getTel() {
        return tel;
    }
    public void setTel(String tel) {
        this.tel = tel;
    }
}

DAO 파일. 생성.

package kr.hun;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import kr.hun.bean.Simple;
public class SimpleDao {
    private String strconn="jdbc:oracle:thin:@localhost:1521" +
            ":xe";
    // 집에서는 익스 프레션./ 집에선 :xe 가 붙는다 // 본래는 :xe 대신 :orcl
    //e : java.sql.SQLException: IO 예외 상황: The Network Adapter could not establish the connection
    // 오류 시에 제대로 오라클에 접속 이안되는것을 말한다./ 이대에는 포트 번호 확인. 및 :xe or :orcl  아이디 패스워드 등을 확인 해야 한다. 오라클 켜짐 여부.
    private String strid="jdbc";
    private String strpass="jdbc";
    private  String strdriver="oracle.jdbc.driver.OracleDriver";
    Connection conn=null; // 연결 하는것
    ResultSet rs=null;    // 연결시 한줄씩 내리는것
    Statement sm=null;  // 연결 받아 온것을 한줄씩 받아 오는것
   
   
    public ArrayList<Simple> getData(String query){
        ArrayList<Simple> list = new ArrayList<Simple>();
        try {
            Class.forName(strdriver);
            conn = DriverManager.getConnection(strconn, strid, strpass);
            sm =conn.createStatement();
            rs = sm.executeQuery(query);
            while(rs.next()){
            int sid=rs.getInt("sid");
            String name=rs.getString("name");
            String tel=rs.getString("tel");
            Simple simple =new Simple();
            simple.setSid(sid);
            simple.setName(name);
            simple.setTel(tel);
            list.add(simple);
            //System.out.println("sid : "+sid+"name : "+name+"tel : "+tel);
            }
       
        } catch (Exception e) {
            System.out.println("e : "+e);
        }finally{
            if(rs!=null)try {rs.close();} catch (SQLException e) {e.printStackTrace();}
            if(sm!=null)try {sm.close();} catch (SQLException e) {e.printStackTrace();}
            if(conn!=null)try {conn.close();} catch (SQLException e) {e.printStackTrace();}
            // 닫지 않으면 메모리를 지속적으로 조금씩 잡아 먹는다. 반드시 close 시켜야 한다.
        }
        return list;
    }
    public int updateSimple(int sid,String name,String tel){
        int applieNum=0;
        // 생성시에 리턴값 1을 돌려 받기 위한 지역변수 applieNum 생성.
        try {
            Class.forName(strdriver);
            conn = DriverManager.getConnection(strconn, strid, strpass);
            String query="";
            query+="UPDATE simple set ";
            query+="name ='"+name+"', ";
            query+="tel='"+tel+"' ";
            query+="where sid='"+sid+"' ";
            sm =conn.createStatement();
            applieNum = sm.executeUpdate(query);
           
            // 집에서는 익스 프레션./ 집에선 :xe 가 붙는다 // 본래는 :xe 대신 :orcl
            //e : java.sql.SQLException: IO 예외 상황: The Network Adapter could not establish the connection
            // 오류 시에 제대로 오라클에 접속 이안되는것을 말한다./ 이대에는 포트 번호 확인. 및 :xe or :orcl  아이디 패스워드 등을 확인 해야 한다. 오라클 켜짐 여부.
       
        } catch (Exception e) {
            System.out.println("e : "+e);
        }finally{
            if(rs!=null)try {rs.close();} catch (SQLException e) {e.printStackTrace();}
            if(sm!=null)try {sm.close();} catch (SQLException e) {e.printStackTrace();}
            if(conn!=null)try {conn.close();} catch (SQLException e) {e.printStackTrace();}
            // 닫지 않으면 메모리를 지속적으로 조금씩 잡아 먹는다. 반드시 close 시켜야 한다.
        }
        return applieNum;
    }
    public int insertSimple(int sid,String name,String tel){
        int applieNum=0;
        try {
            Class.forName(strdriver);
            conn = DriverManager.getConnection(strconn, strid, strpass);
            String query="";
            query+="INSERT into simple (sid,name,tel) values ";
            query+="('"+sid+"', ";
            query+="'"+name+"', ";
            query+="'"+tel+"')";
           
            sm =conn.createStatement();
            applieNum = sm.executeUpdate(query);
           
            // 집에서는 익스 프레션./ 집에선 :xe 가 붙는다 // 본래는 :xe 대신 :orcl
            //e : java.sql.SQLException: IO 예외 상황: The Network Adapter could not establish the connection
            // 오류 시에 제대로 오라클에 접속 이안되는것을 말한다./ 이대에는 포트 번호 확인. 및 :xe or :orcl  아이디 패스워드 등을 확인 해야 한다. 오라클 켜짐 여부.
       
        } catch (Exception e) {
            System.out.println("e : "+e);
        }finally{
            if(rs!=null)try {rs.close();} catch (SQLException e) {e.printStackTrace();}
            if(sm!=null)try {sm.close();} catch (SQLException e) {e.printStackTrace();}
            if(conn!=null)try {conn.close();} catch (SQLException e) {e.printStackTrace();}
            // 닫지 않으면 메모리를 지속적으로 조금씩 잡아 먹는다. 반드시 close 시켜야 한다.
        }
        return applieNum;
    }
    public int deleateSimple(int sid){
        int applieNum=0;
        try {
            Class.forName(strdriver);
            conn = DriverManager.getConnection(strconn, strid, strpass);
            sm =conn.createStatement();
            String query="";
            query+="DELETE from simple where sid="+sid ;
            applieNum = sm.executeUpdate(query);
        //    System.out.println("applieNum : "+applieNum);
           
            // 집에서는 익스 프레션./ 집에선 :xe 가 붙는다 // 본래는 :xe 대신 :orcl
            //e : java.sql.SQLException: IO 예외 상황: The Network Adapter could not establish the connection
            // 오류 시에 제대로 오라클에 접속 이안되는것을 말한다./ 이대에는 포트 번호 확인. 및 :xe or :orcl  아이디 패스워드 등을 확인 해야 한다. 오라클 켜짐 여부.
       
        } catch (Exception e) {
            System.out.println("e : "+e);
        }finally{
       
            if(sm!=null)try {sm.close();} catch (SQLException e) {e.printStackTrace();}
            if(conn!=null)try {conn.close();} catch (SQLException e) {e.printStackTrace();}
            // 닫지 않으면 메모리를 지속적으로 조금씩 잡아 먹는다. 반드시 close 시켜야 한다.
        }
        return applieNum;
    }

   
}

 

 

 

 

이 글은 스프링노트에서 작성되었습니다.

'JAVA' 카테고리의 다른 글

SqlExploler(eclipse)  (0) 2012.05.08
자바 EXE 만들기.  (0) 2012.05.08
VisualSVN  (0) 2012.05.08
JAVA 에러코드  (0) 2012.05.08
JAVA 기초수업  (0) 2012.05.08
Posted by 사라링
BLOG main image
.. by 사라링

카테고리

사라링님의 노트 (301)
JSP (31)
J-Query (41)
JAVA (24)
VM-WARE (0)
디자인패턴 (1)
스크랩 (0)
스트러츠 (3)
안드로이드 (11)
오라클 (45)
우분투-오라클 (1)
이클립스메뉴얼 (6)
스프링3.0 (23)
자바스크립트 (10)
HTML5.0 (17)
정보처리기사 (1)
기타(컴퓨터 관련) (1)
문제점 해결 (3)
프로젝트 (2)
AJAX (4)
하이버네이트 (3)
트러스트폼 (11)
Jeus (2)
재무관리(회계) (5)
정규식 (5)
아이바티스 (8)
취미 (2)
소프트웨어 보안 관련모음 (0)
정보보안기사 (6)
C언어 베이직 및 프로그램 (3)
보안 관련 용어 정리 (2)
넥사크로 (6)
Total :
Today : Yesterday :