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 |
댓글