2/25(목) JDBC(5)

7859 단어 JavaJava

1. Properties 복습

: Map 계열의 컬렉션(key + value 세트로 담는)

  • Key값도 String, Value 값도 String인 특징
  • Properties에 담겨있는 것들을 파일로 출력을 한다거나
  • 파일에 있는 데이터들을 Properties 입력 받아올 수 있는 즉, 파일과 입출력할 수 있는 메소드를 제공!
package run;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;

public class Run {

	public static void main(String[] args) {
		/*
		 *   CRUD 구현(C-Insert, R-Select, U-Update, D-Delete)
		 */
		Properties prop = new Properties();
		
		// setProperty 메소드(key, value를 세팅하는 메소드)
		// Map의 특징 : 순서 유지 되지 않는다.
		prop.setProperty("C", "Insert");
		prop.setProperty("R", "Select");
		prop.setProperty("U", "Update");
		prop.setProperty("D", "Delete");
		
		 System.out.println(prop);
		
		 // getProperty 메소드 (proeprty 불러오겠다)
		 System.out.println(prop.getProperty("R"));
		 System.out.println(prop.getProperty("C"));
		 
		try {
      		<prop 내용 담은 파일 생성하겠다.>
        	<test.properties 파일 생성>
			prop.store(new FileOutputStream("test.properties"), "test properties");
            	<test.xml 파일 생성>
			prop.storeToXML(new FileOutputStream("test.xml"), "test properties");
            
              	<prop 내용 담은 파일 불러오겠다>
			prop.load(new FileInputStream("test.properties"));
			prop.loadFromXML(new FileInputStream("test.xml"));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

Properties를 이용해 JDBCTemplate 파일을 따로 구성해서 전체 파일 구동의 흐름을 끊지 않고 JDBCTemplate 파일만을 유지보수하여 파일서비스가 끊기지 않게 함

(1) XML 파일 구성

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>test properties</comment>
<entry key="selectList">
	SELECT *
	FROM MEMBER
	ORDER BY USERNAME
</entry>
<entry key="updateMemeber">
	UPDATE MEMBER
	   SET UESRPWD = ?
	     , EMAIL = ?
	 WHERE USERID = ? 
</entry>

<entry key="delete">
	DELETE FROM MEMBER
	 WHERE USERID = ?
</entry>
<entry key="C">Insert</entry>
</properties>

(2) Properties 파일 구성

#db information
driver = oracle.jdbc.driver.OracleDriver
url = jdbc:oracle:thin:@localhost:1521:xe
username = JDBC
password = JDBC

(3) JAVA mainMethod 구성

: Properties - mainMethod 연결

package run;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.InvalidPropertiesFormatException;
import java.util.Properties;

public class Run {

	public static void main(String[] args) {

 	   Properties prop1 = new Properties();
		
		try {
			prop1.load(new FileInputStream("test.properties"));
			
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		System.out.println(prop1.getProperty("driver"));
		System.out.println(prop1.getProperty("url"));
		System.out.println(prop1.getProperty("username"));
		System.out.println(prop1.getProperty("password"));
	}
}
    

Properties - mainMethod 연결

package run;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.InvalidPropertiesFormatException;
import java.util.Properties;

public class Run {

	public static void main(String[] args) {
		Properties prop2 = new Properties();
		
		try {
			prop2.loadFromXML(new FileInputStream("test.xml"));
		} catch (InvalidPropertiesFormatException e) {
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		System.out.println(prop2.getProperty("selectList"));
		System.out.println(prop2.getProperty("updateMember"));
		System.out.println(prop2.getProperty("deleteMember"));
	}

<Properties 출력결과>

<XML 출력결과>

좋은 웹페이지 즐겨찾기