본문 바로가기
프로그래밍 언어/Java

Java) 11/02 - JDBC

by nomfang 2021. 11. 2.
728x90
반응형

JDBC

자바는 1tier 기술
JDBC는 2tier
웹은 3tier

JDBC 4단계

  1. Driver Loading (Fully Quealified Class Name - Connector J 8.0은 32bit에 설치 되어있음)
  2. DB 서버와 연결
  3. Prepared Statement 생성 : 인자값으로 쿼리문 (값 바인딩으로 전달)
  4. 쿼리문 실행 : execute...
  5. close : 연결 순서 반대로 (ResultSet, PreparedStatement, Connection 순서로 닫는다)

Driver Loading

C:\Program Files (x86)\MySQL\Connector J 8.0 내부에
mysql-connector-java-8.0.26 파일 (jar)을

C:\Program Files\Java\jre1.8.0_301\lib\ext 와
C:\Program Files\Java\jdk1.8.0_301\jre\lib\ext 로 복사해 넣는다

package jdbc.test1;

import java.sql.DriverManager;
import java.sql.SQLException;

public class DBConnectionTest {

    // 1. 드라이버 로딩
    DBConnectionTest(){
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            System.out.println("로딩 성공");

            // 2. DB 서버 연결

            String url = "jdbc:mysql://127.0.0.1:3306/scott?serverTimezone=UTC&useUnicode=yes&characterEncoding=UTF-8"; 
            DriverManager.getConnection(url, "root", "1234");
            System.out.println("서버 연결 성공");

        }catch(ClassNotFoundException e) {
            System.out.println("로딩 실패");

        }catch(SQLException e) {
            System.out.println("DB 서버 연결 실패");
        }

    }


    public static void main(String[] args) {
        // TODO Auto-generated method stub
        new DBConnectionTest();
    }

}

executeUpdate() : 성공 시 1, 실패 시 0 리턴
executeQuery() : ResultSet 리턴

qeury 하나 당 prepareStatement 하나가 생성된다고 생각하면 된다

NULL

DB에서 NULL은 0이나 없는 값이 아니다

  1. 자격 없음
  2. 미확정

의 의미를 가지는 값

null과의 연산은 null
0보다 작은 것으로 인식 됨

null 연산 시
ifNull(컬럼명, 치환 값) 으로 치환하여 사용

alias

as 생략 가능
"" 생략 가능 (공백 필요 시에는 사용해야 함)

projection

원하는 컬럼 값만 가져오는 것

SQL

DML : 데이터 조작어 - SELECT, INSERT, UPDATE, DELETE, MERGE
DDL : 데이터 정의어 - CREATE, ALTER, DROP, RENAME
DCL : 데이터 제어어 - GRANT, REVOKE

SELECT

projection + selection

projection : 컬럼명을 직접 지정
distinct 컬럼의 중복을 제거

selection : where 절을 추가해서 원하는 행만 검색
order by, alias

schema

스키마 - database

반응형

'프로그래밍 언어 > Java' 카테고리의 다른 글

Java) 11/04 - JDBC 개발 순서  (0) 2021.11.04
Java) 11/04 - JDBC 상수 모듈화  (0) 2021.11.04
Java) 11/01 - 예외 처리 (Exception)  (0) 2021.11.01
Java) 10/29 - CollectionAPI  (0) 2021.10.29
Java) 10/28 - Interface  (0) 2021.10.29

댓글