JDBC 기초

DB/JDBC : 2007. 4. 3. 23:56
반응형

*jdbc(java database connectivity)
java.sql 패키지 사용
1. DriverManager : JVM에서 JDBC전체를 관리하는 class(Driver등록, Connection 연결작업)
2. Driver : DB를 만드는  Vendor 를 구현하여 자신들의 DB를 연결할수 있는 class를
            만드는 interface
3. Connection : DB와 연결성을 가지고 있는 interface
4. Statement : 실제 SQL문을 사용하기 위하여 Connection으로부터 받아내는 interface
5. ResultSet : Statement를 통하여 SQL Select 문을 실행하였을 때
               그 결과 Date를 가지고 있는 interface

JDBC 사용하기
1. Connection 설정
 1. 선언
    Connection conn;
 2. 검색
    Class.forName("oracle.jdbc.driver.OracleDriver");
           ("sun.jdbc.odbc.JdbcOdbcDriver")
           ("dor.gjt.mm.mysql.Driver")

 3. 객체값 얻기(연결)
    conn=DriverManager.getConnection();
       "jdbc:oracle:thin:@IP Adress:port:별칭,id,password"
       "jdbc:odbc:별칭"
       "jdbc:mysql:IP Adress:port:별칭"

2. Statement설정
   1. 선언
      Statement stmt;
   2. 객체값 얻기 (db로 부터)
      stmt=conn.createStatement();

3. SQL문장
   1. insert  추가
   2. delete 삭제
   3. update 수정
   4. select 검색

4. 사용
   1. stme.executeUpdate(sql문장)
   2. ResultSet rs=stme.executeQuery(sql문장);
             rs.next() rs가 한개 이상 있다면 true, 0개이면 false가 나온다.
     rs.next 는 if와 while에 쓰인다.
  getString.
  rs.next와 getString 은 외워두자.



**************************************************************************

/* ex)
class FirstJDBC
table 명 : nameDB
colume : name varchar2 (20)
*/
import java.io.*;
import java.sql.*;

class FirstJDBC
{
   String name, TableName;
   Connection conn;
   Statement stmt;
   ResultSet rs;

   FirstJDBC()
   {
    try
    {
       Class.forName("oracle.jdbc.driver.OracleDriver");
       conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ora","scott","tiger");
       stmt = conn.createStatement();
       System.out.println("DB 연결 성공!");
    }
    catch (Exception e)
    {
    System.out.println("DB 연결 실패!"+e);
    }

/////////// Table 생성

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    System.out.print("Input TableName : ");
    try
    {
       TableName = br.readLine();
       String sql = "Create table "+TableName+" (name varchar2(20))";
  // String sql1 = "Create table PANDA(name varchar2(20))";
       stmt.executeUpdate(sql);
       System.out.println("테이블 생성 성공!");
    }
 
    catch (Exception e)
    {
       System.out.println("테이블 생성 실패!"+e);
    }

///////////  DB 추가

    BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in));
    System.out.print("Input name : ");
    try
    {
       name = br1.readLine();
       String sql = "insert into "+TableName+" values ('"+name+"')";
       stmt.executeUpdate(sql);
       System.out.println("DB 추가 성공!");
    }
    catch (Exception e)
    {
       System.out.println("DB 추가 실패!"+e);
    }

/////////// Select 문
 
    try
    {
       String sql = "select * from "+TableName+" ";
       rs = stmt.executeQuery(sql);
       while (rs.next())
       {
          System.out.println("현재 DB 내용 출력!");
          System.out.println(rs.getString("name"));
       }
       System.out.println("DB 검색 성공!");
    }
    catch (Exception e)
    {
       System.out.println("DB 검색 실패!");
    }
 

/////////// close 문
 
    try
    {
       stmt.close();
       conn.close();
       System.out.println("DB 닫기 성공!");

    }
    catch (Exception e)
    {
       System.out.println("DB 닫기 실패!");
    }

  }

  public static void main(String[] args)
  {
     FirstJDBC fj = new FirstJDBC();
  }
}

반응형

'DB > JDBC' 카테고리의 다른 글

MetaData  (0) 2007.04.04
PreparedStatement  (0) 2007.04.04
JDBC란..?  (0) 2007.03.29
Posted by Real_G