[JAVA / SQL] 오라클 DB와 이클립스 JAVA 연결 JDBC

Gabriela·2023년 8월 9일
0

JAVA

목록 보기
24/24
post-thumbnail

JDBC

  • 데이터베이스 db jar는 DB벤더(데이터베이스 회사)에서 제공
  • 기본적으로 자바와 데이터베이스 연결은 DB벤더마다 다르기때문에 해당 디비벤더에서 제공하는 jar를 이용해야 접속이 가능하다.
  • 무조건 외워놔야되는 라이브러리 ▽
  • oracle.jdbc.OracleDriver : jdbc 첫 단추는 이 클래스를 로드함으로 시작하기 때문에 꼭 외워두어야 한다.

(가장먼저할일 오라클드라이버 클래스를 메모리에 로드)


  • connect
    자바를 사용할때도 가장 먼저 할 일이 오라클 <접속> 이다.


  • Class 클래스 : 클래스를 메모리에 로드시켜주는 java.lang에 있는 클래스

  • Connection 객체 생성 --> DB 접속 생성
    java.sql.Connection : java.sql 패키지에 들어있는 커넥션 인터페이스

  • DB에 있는 사용자 이름 / 비밀번호 -> 자바에서 접속할때도 동일하게 필요하다.

  • 디비 종류에 따라 서비스 아이디가 달라질 수 있다.
  • 만약 뒤에 orcl이 붙으면 돈내고 이용하는 상용화버전이다.

접속 정보 작성방법

String url = "jdbc:oracle:thin:@localhost:포트:xe";

호스트 : 포트 : SID
localhost:포트넘버:SID

  • thin : xe(Express Edition) --> light버전을 의미한다.
  • xe : 데이터베이스 서비스 네임
  • 기본적인 localhost 아이피주소 : 127.0.0.1

  • 깃이그노어는 모든 작업의 시작 전에 해야한다.⭐⭐
    (이그노어 수정햇으면 push먼저 한 뒤 나머지 작업 저장)
  • .gitignore 대비 : 보안

접속 정보를 별도의 파일(프로퍼티 파일)에 저장

  • .gitignore 파일에 db.properties 목록 추가하기
  • git push origin main
    - db.properties 파일 만들기

DTO

DTO : 데이터베이스 전송 객체

  • 데이터베이스에 데이터를 전달할 때 dto에 담아서 전한다.

  • insert, update, delete
    int로 결과를 받음
  • select
    ResultSet 으로 결과를 받음

SELECT 검색 결과를 처리하는 방식

selectOne : 상세보기

  • ResultSet 객체는 검색 결과를 행(Row) 단위로 처리한다.

  • next() 메소드를 통해서 검색 결과를 행(Row) 단위로 이동한다.
    next() 메소드를 1번 호출하면 첫 번재 검색 결과 행(Row)을 처리한다.
    next() 메소드를 2번 호출하면 두 번째 검색 결과 행(Row)을 처리한다.
    ...

  • next() 메소드는 boolean 타입의 값(true, false)를 반환한다.
    ▹ 검색 결과 행(Row)이 있으면 true를 반환한다.
    ▹ 검색 결과 행(Row)이 없으면 false를 반환한다.

  • 검색 결과 행(Row)의 각 칼럼(column)은 칼럼의 이름 또는 칼럼의 번호를 이용해서 가져온다.


selectList : 목록보기


DAO

  • Database Access Object

  • 데이터베이스에 접근해서 쿼리문을 실행하고 쿼리문의 실행 결과를 받는 객체이다.

  • 하나의 객체만 만들어서 사용하는 Singleton Pattern으로 객체를 생성한다.

  • 동시성 문제를 방지하기 위해서 DAO를 사용한다.


Singleton Pattern

  • 오직 하나의 객체만 만들 수 있도록 처리하는 패턴이다.
  • 미리 하나의 객체를 만든 뒤 해당 객체를 가져다 사용할 수 있도록 처리한다. (static 사용)
  • 객체 생성이 불가능하도록 생성자를 호출할 수 없게 만든다.
    (dao외부에서는 new ContactDao()를 못하게 막겠다는 의미이다. == private을 사용한 생성자)

👉 활용예제1 (클릭)

👉 활용예제2 (클릭)


profile
개발이 세상에서 제일 재밌어요

0개의 댓글

관련 채용 정보