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

Java) 11/04 - JDBC 상수 모듈화

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

모듈화

결합성을 낮추고 재사용성을 높이기 위해 상수들을 모듈화 한다.
interface는 상수와 추상 메소드로만 구성되어져 있기 때문에 인터페이스로 모듈화를 한다

서버 정보, 기타 정보 등을 저장하는 모듈은 config 라는 패키지명을 주로 사용함 (configuration)

문서 파일로 저장 하기

properties 는 map의 자식으로 key / value 를 String으로 저장한다 (파편화된 정보를 저장하기 위해 String)
eclipse의 파일은 properties로 저장됨 (한글 안됨)
주석은 '#'

비 전문가도 SQL 쿼리를 사용할 수 있게 SQL도 문서 파일 모듈로 저장한다

#### db server infoamtion ####
#### xml(web), properties(spring) file ####

jdbc.mysql.driver = com.mysql.cj.jdbc.Driver
jdbc.mysql.url = jdbc:mysql://127.0.0.1:3306/scott?serverTimezone=UTC&useUnicode=yes&characterEncoding=UTF-8
jdbc.mysql.user = user
jdbc.mysql.pass = 1234


#### custom table dml query ####

jdbc.sql.select = SELECT * FROM custom WHERE num=?
jdbc.sql.selectAll = SELECT * FROM custom

소스코드 내부에 작성..?

static 초기화 블럭에서 Class.forName(ServerInfo.DRIVER); 실행


package jdbc.simple.test1;

import config.ServerInfo;

// JDBC 프로그램을 조금 더 구조적으로..?

public class SimpleCustomTest {

    // 생성자 있음


    // DML에 해당하는 기능 정의

    // INSERT

    public void addCustom(int num, String name, String addr) {

    }

    // DELETE
    public void removeCustom(int num) {

    }

    // UPDATE

    public void updateCustom(int num, String name, String addr) {

    }

    // SELECT ALL

    public void printAllCustom() {

    }


    // SELECT 



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

        SimpleCustomTest test = new SimpleCustomTest();

    }//


    // static initialization - main 보다 먼저 실행됨

    static {
        try {
            Class.forName(ServerInfo.DRIVER);
            System.out.println("Driver Loading Success");
        }catch(ClassNotFoundException e) {
            System.out.println("Driver Loading Fail");
        }
    }



}

singletone

메소드 하나가 서비스 하나 (싱글턴 패턴)
메소드 하나를 실행하면 하나의 연결, 연결된 하나를 종료해야한다
(커넥션을 절대로 필드에 선언하면 안된다 - 각각의 커넥션을 가져야함)

반응형

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

Java) 11/5 - Entity  (0) 2021.11.05
Java) 11/04 - JDBC 개발 순서  (0) 2021.11.04
Java) 11/02 - JDBC  (0) 2021.11.02
Java) 11/01 - 예외 처리 (Exception)  (0) 2021.11.01
Java) 10/29 - CollectionAPI  (0) 2021.10.29

댓글