• JDBC

    2021. 1. 22.

    by. 공상개발

     

    기본적인 테크닉이지만 그만큼 필수적인 개념이기 때문에 정리할 겸 JDBC에 대해 다루어 보도록 하겠다.

     

     

    목차

    1. JDBC 의미 

    2. JDBC 구현 순서

    3. 자바와 데이터베이스 연동하는 코드

     

     

    1. JDBC 의미

     

    JDBC가 무엇인가?

    쉽게 말해서 Java 프로그램에서 DB에 접속할 수 있도록 만든 API(application programming interface) 규격이라고

    생각하면 된다.

    좀 더 자세히 말하자면, Java 프로그램 내에서 데이터베이스 질의 문(SQL)을 실행하기 위한 자바 API이다.

     

     

     

    2. JDBC 구현 순서

     

    구현 순서는 5단계로 나뉜다.

     

    JDBC 드라이버 로드 -> JDBC를 통해 DB와 연결 -> Statement 생성 (SQL) -> 결과 패치 -> 자원 해제

     

     

     

     

    1. JDBC 드라이버 로드

     

    Class.forName(JDBC Driver 클래스 이름);

     

     

     

     

    2. JDBC를 통해 DB와 연결

     

    Connection conn = DriverManager.getConnection(JDBC_URL,“아이디”,”비밀번호”);

                                                                             ➊                 

     

     

    DB에 연결을 위해 DriverManager 클래스의 getConnection() 메서드를 사용한다.

    ➊ JDBC_URL : 해당 데이터베이스에 맞게 미리 정의되어 있는 문자열이다.

    ➋ 아이디와 ➌ 비밀번호 : 시스템에 로그인하는 계정이 아니라 데이터베이스 자체에서 관리하는 계정이다.

     

     

    JDBC URL 구조

    jdbc:mysql:// IP주소 :PORT(옵션)/스키마

                         ➊                  

     

     

    ➊ IP 주소 : MySQL 데이터베이스가 설치된 컴퓨터의 IP 주소 또는 도메인 이름 (localhost)

    ➋ 스키마 : 데이터베이스에서 생성한 스키마(데이터베이스) 이름

    ➌ 포트 : 기본 설정 값인 3306 포트를 사용하는 경우에는 생략 가능

     

     

     

     

    3. Statement 생성 (SQL)

     

    SQL 실행을 위한 메서드 제공

     

     

    • executeQuery(String sql)

        * SELECT문을 수행할 때 사용

        *반환 값은 ResultSet 클래스의 인스턴스로, 해당 SELECT문의 결과에 해당하는 데이터에 접근 방법 제공

     

    • executeUpdate(String sql)

        * INSERT, UPDATE, DELETE, CREATE, DROP 수행할 때 사용

        *반환 값은 int 값으로, 처리된 데이터의 수를 반환 (CREATE, DROP은 -1 반환)

     

     

     

     

    4. 결과 패치 : REsultSet

     

    Resultset rs = st.executeQuery(sql);

     

     

    *동작 이해를 위한 추가 이미지*

     

     

     

     

    5. 자원 해제

     

    rs.close()

    st.close();

    con.close();

     

     

     

     

     

    3. 자바와 데이터베이스 연동하는 코드

     

     

    *admin이라는 데이터를 조회해보는 프로그램*

     

    목표 : 특정한 데이터베이스에 접속해서 데이터를 조회한 값을 처리해서 값을 내보내는 동작 구현

     

     

    우선 저는 DBMS(DataBase Management System)을 MySQL 을 사용하기 때문에 

    아래에 있는 connector를 사용해 연동할 것입니다. 버전이 오래되긴 했는데 간단한 실습이면 문제 될 것 같진 않습니다.

     

     

    데이터베이스 연동 준비물

    이 jar 파일을 

     

     

    프로젝트 안에 폴더를 만들어 폴더 속으로 넣어줍니다.

     

     

     

    그리고 프로젝트를 우 클릭을 하게 되면 Propertise이 보이는데 클릭해 줍니다.

     

    그러면 이런 창이 나오게 되는데 Java Build Path 클릭 후 -> Libraries 클릭 -> Add JArs... 클릭 

     

    library 폴더에 넣어준 connector를 클릭해 ok를 누르고 적용시켜주고 창을 닫습니다.

     

    그리고 접속할 수 있는 Tutorial 데이터베이스를 만들어주고 admin 테이블을 생성 -> Column을

    adminID 와 adminPassword 생성한 후 ->둘 다 admin을 삽입해 줍니다.

     

     

     

    이제 코드를 보겠습니다.

     

     

     

    DBConnection  클래스

     

     

     

     

    main  클래스

     

     

     

     

    프로그램이 정상 동작

    이렇게 출력됩니다.

    댓글