JDBC의 Properties 활용
Properties 사용 목적
JDBC 이용 시 SQL문을 그때그때 직접 명시적으로 작성하는 것은 정적 코딩방식으로 하드코딩이라고도 할 수 있다
이러한 점을 동적 코딩방식으로 변경하여 SQL문들을 별도로 관리하는 외부파일(.xml, .properties 등)을 만들어 사용한다면 앞으로의 유지보수에 큰 도움이 될 수 있다
Properties 클래스는 이러한 설정정보들이 담긴 외부파일을 읽어와 실제 코드로 사용할 수 있도록 해준다
- Properties 클래스 특징
- Hashtables의 하위 클래스로 Map의 속성인 key와 values를 String 형태로 가지고 있다
- String 형태이기 때문에 get, set, put 메서드를 제공한다
- 파일의 입출력을 지원한다(HashMap과의 가장 큰 차이)
- DB의 연결정보 등을 저장해두는 용도로 많이 쓰인다
Properties 사용 방법 (XML 파일의 경우)
[ 1) xml파일 생성 ]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<!-- DOCTYPE은 해당 xml의 타입을 결정 -->
<properties>
<comment>query.xml</comment>
<entry key="insertMember">
INSERT INTO MEMBER
VALUES(SEQ_USERNO.NEXTVAL, ?, ?, ?, ?, ?, ?, ?, ?, ?, DEFAULT)
</entry>
<entry key="selectAll">
SELECT * FROM MEMBER ORDER BY USERNO
</entry>
</properties>
- DOCTYPE이 properties인 .xml 파일을 생성한다
- DOCTYPE은 해당 xml 파일의 타입을 결정한다
- 보통 resources 폴더 내에 해당 파일을 생성하여 사용한다
[ 1) Properties 클래스 사용 ]
// Properties 객체 생성
private Properties prop = new Properties();
// Properties 객체에 원하는 파일 정보를 불러온다
try {
prop.loadFromXML(new FileInputStream("resources/query.xml"));
} catch (IOException e) {
e.printStackTrace();
}
// Properties 객체 사용
String sql1 = prop.getProperty("insertMember");
String sql2 = prop.getProperty("selectAll");
- Properties 객체 생성 후 해당 객체에 원하는 파일 정보를 불러와 사용한다
- 파일을 직접 여는 클래스는 아니기 때문에 FileReader / FileInputStream 객체를 매개변수로 받는다
- Properties 객체는 String 자료형의 key, value를 담고 있으므로 원하는 값을 불러올 때는 key값을 입력하면 된다
댓글남기기