자바는 디렉토리가 비어 있지 않으면 삭제를 할 수 없으므로 재귀호출을 통하여

해당 디렉토리의 파일들을 먼저 지우고 디렉토리 삭제를 하도록 처리한당.. ^^


public static void deleteDir(String path) {
  deleteDir(new File(path));
 }

 

 public static void deleteDir(File file) {  

  if (!file.exists())
   return;

  File[] files = file.listFiles();
  for (int i = 0; i < files.length; i++) {
   if (files[i].isDirectory()) {
    deleteDir(files[i]);
   } else {
    files[i].delete();
   }
  }
  file.delete();
 }

엮인글을 보면 무조건 StringBuffer를 사용해야 한다고 결론을 내릴것 같아서...
물론 많은 경우에 StringBuffer를 사용하는게 바람직하지만,
정적인 TEXT는 String으로 하는게 좋습니다.

String str = "SELECT *  "
              + "FROM test_table "
              + "WHERE id = ? ";

StringBuffer sb = new StringBuffer();
         sb.append("SELECT *  ")
             .append("FROM test_table ")
             .append("WHERE id = ? ");

만약 위의 경우라면 str 을 추천하겠습니다.
똑똑한 컴파일러가 위의 구문은 한 줄의 문자열로 최적화 해줍니다.
하지만, StringBuffer를 사용하게 되면...런타임시에 동적으로 작업하게 됩니다.

아래의 예제를 돌린 결과입니다.
-----------------------------------------------------------------------------------------
[String]
1828888/2031616
10
1828888/2031616
[StringBuffer]
1828656/2031616
110
1640856/2031616
-----------------------------------------------------------------------------------------
/*
 * StringTest.java
 *
 * Created on 2006년 5월 17일 (수), 오전 9:51
 */

/**
 *
 * @author Administrator
 */
public class StringTest {
   
    /** Creates a new instance of StringTest */
    public StringTest() {
    }
   
    public String getString() {
        String str = "SELECT *  "
              + "FROM test_table "
              + "WHERE id = ? ";
        return str;
    }
   
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Runtime rt = Runtime.getRuntime();
        System.out.print(rt.freeMemory());
        System.out.println("/" + rt.totalMemory());
        long start = System.currentTimeMillis();
        StringTest st = new StringTest();
        for(int i=0; i < 30000; i++) {
            st.getString();
        }
        long stop = System.currentTimeMillis();
        System.out.println(stop - start);
        System.out.print(rt.freeMemory());
        System.out.println("/" + rt.totalMemory());
    }
   
}
----------------------------------------------------------------------------------
/*
 * StringBufferTest.java
 *
 * Created on 2006년 5월 17일 (수), 오전 9:51
 */

/**
 *
 * @author Administrator
 */
public class StringBufferTest {
   
    /** Creates a new instance of StringBufferTest */
    public StringBufferTest() {
    }
   
    public String getString() {
        StringBuffer sb = new StringBuffer();
         sb.append("SELECT *  ")
             .append("FROM test_table ")
             .append("WHERE id = ? ");

        return sb.toString();
    }
   
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Runtime rt = Runtime.getRuntime();
        System.out.print(rt.freeMemory());
        System.out.println("/" + rt.totalMemory());
        long start = System.currentTimeMillis();
        StringBufferTest st = new StringBufferTest();
        for(int i=0; i < 30000; i++) {
            st.getString();
        }
        long stop = System.currentTimeMillis();
        System.out.println(stop - start);
        System.out.print(rt.freeMemory());
        System.out.println("/" + rt.totalMemory());
    }
   
}
----------------------------------------------------------------------------------
* 위의 메소드인 getString()에 어떤값을 넣어서 문자열을 생성하는 동적인 처리인 경우에는 엮인글의
내용처럼 StringBuffer가 더 좋을 가능성이 많습니다.
(그렇지만...String에 대한 최적화가 많이 이루어져서...
동적인 경우에도 StringBuffer로 자동변경작업을 해주기도 합니다.)
간단한 유저 생성~

CREATE USER 사용자명
IDENTIFIED BY 패스워드
DEFAULT TABLESPACE 테이블스페이스명
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT
ACCOUNT UNLOCK;

GRANT DBA TO 사용자명;

ALTER USER 사용자명 DEFAULT ROLE ALL;

GRANT CREATE TABLE TO 사용자명;

GRANT UNLIMITED TABLESPACE TO 사용자명;

GRANT CREATE SESSION TO 사용자명;

GRANT CREATE VIEW TO 사용자명;

'IT > DB' 카테고리의 다른 글

[DB2] DB2 - SQL state [54048]; error code [-1585];  (0) 2008.09.20
[DB2] 명령어 모음  (0) 2008.09.20
[ORACLE] 파티션테이블  (0) 2008.09.19
[ORACLE] ERROR 관련  (0) 2008.09.19
[MSSQL] 날짜 형식 변환  (0) 2007.06.29

+ Recent posts