본문 바로가기

카테고리 없음

SqlDaoConverter

반응형
package my.util;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

/**
*
* <pre>
* origin.sql File을 읽어서 DAO에서 사용할 SQL로 바꾸는 Util
* 마음대로 배포 및 수정 하셔도 됩니다.
* author 만 남겨주세요.
* </pre>
* @author Jeong-Hoon, Kim
*
* @since Jdk 1.6.0_02
* 2008. 02. 20
*/
public class SqlDaoConverter {
        private String resultSql;

        /**
         * 생성자
         * @throws IOException
         */
        public SqlDaoConverter() throws IOException{
                String str = "src\\my\\util\\sql\\origin.sql";
                BufferedReader br = new BufferedReader(new FileReader(str));
                StringBuilder sb = new StringBuilder();
                setResultSql(br, sb);
        }

        /**
         * DAO에서 사용하도록 쿼리를 바꾼다.
         * @param br
         * @param sb
         * @throws IOException
         */
        private void setResultSql(BufferedReader br, StringBuilder sb)
                        throws IOException {
                String s;
                while((s = br.readLine()) != null){
                        sb.append("\""+s.trim()+"\""+"+"+"\""+"\\n"+"\""+"\n+");
                }
                resultSql = sb.substring(0, sb.length()-7).toString().replaceAll(getBindingVariableString(30), "?");
        }

        /**
         * Orange의 binding 값을 ? 로 바꾼다.
         * @param limit
         * @return
         */
        private String getBindingVariableString(int limit) {
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < limit ; i++) {
                        sb.append(":"+i+"|");
                }
                String strBindingVariable = sb.toString().substring(0, sb.length()-1);
                return strBindingVariable;
        }

        /**
         * 결과 Sql을 Return한다.
         * @return
         */
        public String getResultSql() {
                return resultSql;
        }

        /**
         * main에 출력.
         * @param args
         * @throws IOException
         */
        public static void main(String[] args) throws IOException {
                SqlDaoConverter sdc = new SqlDaoConverter();
                System.out.println("===========================================================");
                System.out.println(sdc.getResultSql().trim());
                System.out.println("===========================================================");
        }
}
반응형