Properties 

- Map계열의 컬렉션으로 키+ 밸류 세트로 저장
- 주로 키, 밸류 모두 문자열로 기술
- .properties 또는 .xml 파일과 작업 

   

Properties prop = new Properties();
try {	
       // prop.load(new FileInputStream("resources/test.properties"));
          prop.loadFromXML(new FileInputStream("resources/test.xml"));
		} catch (IOException e) {
			e.printStackTrace();
		}

>> Properties 생성 후 .load() 메소드를 이용해 properties파일과 xml파일에 접근 

 

동적 코딩 

dbms 나 접속할 db의 url, 계정명/ 비번 등이 변경 되었을 경우  자바소스 코드 수정시 프로그램 재구동이 필요함
=> db관련 구문들을 별도로 관리하는 외부파일(.properties)에 관리하면 수정시 외부파일만 수정하면 프로그램 재구동없이 프로그램 실행이 가능함. 

또한, dao 클래스의 sql문을 외부파일(.xml)에  별도로 관리하면 실시간으로 그 파일에 기록된 sql문을 읽어들여 실행할 수 있음

예시)  sql 문을 별도의 xml파일에 저장 후 불러오기 

private Properties prop = new Properties();
	
	public MemberDao() {
		try {
			prop.loadFromXML(new FileInputStream("resources/query.xml"));
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	public int insertMember(Connection conn, Member m) {
		int result = 0;
		PreparedStatement pstmt = null;
		String sql = prop.getProperty("insertMember");
		
		try {
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1,m.getUserId());
			pstmt.setString(2, m.getUserPwd());
			pstmt.setString(3, m.getUserName());
			pstmt.setString(4, m.getGender());
			pstmt.setInt(5, m.getAge());
			pstmt.setString(6, m.getEmail());
			pstmt.setString(7, m.getPhone());
			pstmt.setString(8, m.getAddress());
			pstmt.setString(9, m.getHobby());
			result = pstmt.executeUpdate();
			
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			close(pstmt);
		}
		return result;
	}

 

 

복사했습니다!