'데이터베이스'에 해당되는 글 1건

  1. 2009.08.12 스터디 08/15(JDBC) by 대절님

스터디 08/15(JDBC)

study 2009.08.12 09:13

//데이터베이스 : 여러사람에 의해 사용될 목적으로 관리되는 정보집합
DBMS : 데이터 베이스를 효율적으로 관리할수 있는 시스템
       생성(create) 검색(select) 삭제(delete) 변경(update)
DBMS종류 : 계층, 네트워크, 관계형등으로 구분
관계형 DBMS : 일반적으로 가장많이 사용(Oracle, DB2, MS-SQL)

//관계형 DBMS(용용프로그램 <--> 관계형DBMS <--> 데이터베이스)
특징 : 확장이 용이, 응용프로그램 변경 없이 새로운 데이터를 추가할수 있음, 테이블형태로 저장
필드=컬럼, 레코드=로우

//기본키
-테이블의 각행을 다른행과 구분해주는 역활, 유일한 특성과 값, + NOT NULL + UNIQUE
//외부키
-2개 이상의 테이블 관계를 표현할때 사용
-외부키는 테이블내의 한열의 필드인 동시에 다른 테이블의 기본키인 열의 필드를 의미

//오라클 9i 설치하기
http://www.oracle.com/technology/software/products/oracle9i/index.html - 다운 후 압축을 풀고 실행
SID 입력창(orcl등)<- 반드시기억
환경변수 path설정값 변경하기
PATH = c:\oracle\ora92\bin;c:\ProgramFiles\Oracle\jre\1.3.1\bin;C:\ProgramFiles\Java\jdk1.6.0\bin

//접속하기
1.Command창
sqlplus  - scott/tiger  SQL>
2.프로그램SQLPlus로 접속
3.브라우저에서 접속하기
제어판-관리도구-서비스에서 OracleOraHome92HTTPServer 시작시킴
http://localhost:7778/isqlplus

select * from tabs; <--테이블 목록 출력

//SQL
정의 : RDBMS의 표준언어, DBMS종류에 상관없이 검색, 저장, 관리할수 있는 표준언어
//종류
-DDL : 데이터의 구조를 정의, 테이블 생성, 삭제, 수정
create : 테이블 생성
drop : 테이블 삭제
alter : 테이블 수정
-DML : 데이터의 검색, 수정, 변경, 삭제
insert : 데이터 입력
update : 데이터 수정
delete : 데이터 삭제
select : 데이터 검색
commit : 연산 저장
rollback : 연산 취소
-DCL : 데이터베이스의 사용권한을 정의
grant : 권한 부여
revoke : 권한 취소

//CREATE 테이블 생성
CREATE table member(
  name varchar2(10),             varchar2(가변길이 문자열)
  height varchar2(10),
  weight varchar2(10),
  age number(5),
  sex char(5)                    char(고정길이 문자열)
);
commit;   <--실제 데이터베이스에 반영
desc member; <--테이블 구조보기

//INSERT 데이터 입력, 문자형인 경우 반드시 '' 사용
INSERT INTO member VALUES('강대철','188','78',27,'남');
   
//SELECT 데이터 검색
SELECT * FROM member WHERE name='강대철' ORDER BY height desc;

//UPDATE 데이터 수정
UPDATE member SET height='173' WHERE name = '강대철';

//DELETE 데이터 삭제
DELETE FROM member WHERE name = '강대철';

//JDBC
정의 : DBMS종류에 상관없이 데이터 베이스를 연동하기 위한 API
DBMS종류가 다양, 구조와 특징이 모두 다름. JDBC를 이용해서
모든 DBMS에서 공통적으로 사용할수 있는 인터페이스와 클래스를 정의하고
실제 구현은 DBMS vendor에게 구현하도록 함.
DMBS vendor에서 구현한 클래스 집합을 '드라이버'라고함.

//JDBC API와 드라이버와의 관계
java.sql.*에 보면 DB와 연결할때 필요한 객체들이 인터페이스로 선언되어있음.
JavaApp -> JDBC인터페이스 -> 드라이버 -> DB

C:\oracle\ora92\jdbc\lib\ojdbc14_g.jar 파일을 library등록(DBMS설치시)

//자바 어플리케이션 작업
1) import java.sql.*; 와 4가지 설정값얻기
2) 드라이버로딩
3) Connection 맺기
4) Statement 작성
5) Query문 작성
6) Query문 전송
7) SELECT문인 경우 결과값(ResultSet)얻기
8) 결과값 출력
9) close작업

private static final String driver = "oracle.jdbc.driver.OracleDriver";
private static final String url = "jdbc:oracle:thin:@localhost:1521:orcl";
private static final String user = "scott";
private static final String pwd = "tiger";

psvm{
  Connection con=null;
  Statement stmt=null;
  ResultSet rs=null;
  try{
    Class.forName(driver);              //드라이버로딩(객체생성)
    conn = DriverManager.getConnection(url, user,pwd);     //Connection 생성
    stmt = conn.createStatement();           //Statement생성
    String query = "INSERT INTO member VALUES('a','b','c',1','d');
    stmt.executeUpdate(query);
    String query2 = "SELECT * FROM member";
    rs = stmt.executeQuery(query2);
      while(rs.next()){
         sout(rs.getString("name"));
         sout(rs.getString("height"));
         sout(rs.getString("weight"));
         sout(rs.getInt("age"));
         sout(rs.getString("sex"));
      }
    }catch(Exception e){
    }finally{
       try{
          if(rs != null) rs.close;               //자원 반환
          if(stmt != null) stmt.close;
          if(con != null) con.close;
       }catch(Exception e){
    }
}

//PreparedStatement : 매번 컴파일 하지 않고 값만 바인딩 시킨다.
PreparedStatement pstmt = con.prepareStatement("INSERT INTO member VALUES(?,?,?,?,?)");
  pstmt.setString(1, "강대철");
  pstmt.setString(2, "178");
  pstmt.setString(3, "67");
  pstmt.setString(4, "23");
  pstmt.setString(5, "남");
  pstmt.executeUpdate();

//Connection Pool : 데이터베이스와 연결된 Connection객체들을 포함하고 있는 객체
- 자바App와 데이터베이스 연동 문제점 : Connection 맺는 시간이 가장 오래걸림.
   -> 미리 다수의 Connection을 맺고 자바App에서 메서드 호출로 빌려사용
-실제사용 API : javax.sql.DataSource 사용


//DAO : 데이터베이스 작업을 전담하는 객체
-GUI와 데이터베이스 연동시 문제점 : GUI와 데이터베이스 연동코드가 같은 클래스에 위치
   -> GUI와 별개의 클래스를 만들어 데이터베이스 연동만 전담
-특징 : 유지보수, 재사용성

//TO=VO : 데이터베이스 필드들과 일치하는 멤버변수들로 정의된 객체
-데이터들을 다른 메소드 또는 원격지로 전송시 묶음으로 전송하면 효율적, 일반적으로 TO객체 저장후 Collection에 다시 저장
-직렬화 객체로 작성, setter, getter로 구성

저작자 표시 비영리 동일 조건 변경 허락
신고

'study' 카테고리의 다른 글

스터디 08/15(JSP&Servlet HelloWorld!)  (0) 2009.08.12
스터디 08/15(JSP&Servlet 웹프로그래밍)  (0) 2009.08.12
스터디 08/15(JDBC)  (0) 2009.08.12
스터디 8/1 (JSP, Servlet)  (0) 2009.07.30
스터디 07/18-3 (네트워크)  (0) 2009.07.18
스터디 07/18-2(io)  (0) 2009.07.18
Posted by 대절님

댓글을 달아 주세요



티스토리 툴바