Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. src/main/javacc/JSqlParserCC.jj 를 열어서 다음 내용을 추가

    Code Block
    titlebefore
    options{
        IGNORE_CASE=true ;
        STATIC=false;
    //  DEBUG_LOOKAHEAD= true ;
    //  FORCE_LA_CHECK=true;
    //  DEBUG_TOKEN_MANAGER=true;
    }
    Code Block
    titleAfter
    options{
        IGNORE_CASE=true ;
        STATIC=false;
        UNICODE_INPUT = true;
    //  DEBUG_LOOKAHEAD= true ;
    //  FORCE_LA_CHECK=true;
    //  DEBUG_TOKEN_MANAGER=true;
    }

     

     

     
  2. javacc 로 compile
  3. 11javacc 로 compile 한다
    1. mvn javacc:javacc
  4. JavaCC 로 생성된 .java 파일은 target\generated-sources\javacc\net\sf\jsqlparser\parser 에 위치한다. src 에 복사한다.
  5. mvn clean package 로 UNICODE 지원하는 jsqlparser 를 만든다.
  6. 기존 jsqlparser 를 대신해서 한글이 들어간 SQL 문이 이상없는지 확인해 본다.

    Code Block
    languagejava
    titleutf8ParsingTest.java
    import java.io.StringReader;
    import net.sf.jsqlparser.parser.CCJSqlParser;
    import net.sf.jsqlparser.parser.ParseException;
    import org.junit.After;
    import org.junit.Before;
    import org.junit.Test;
    
    public class utf8ParsingTest {
    	@Before
    	public void setUp() throws Exception {
    	}
    	@After
    	public void tearDown() throws Exception {
    	}
    	@Test
    	public void select() throws ParseException {		
    		String sql = "select * from tbl where col1 = '한글 테스트';";
    		
    		StringReader statementReader=new StringReader(sql);
    		
    		CCJSqlParser parser = new CCJSqlParser(statementReader);
    		
    		parser.Statement();				
    	}
    	@Test
    	public void jsql() throws ParseException {		
    		String sql = "insert into tbl (col1, col2) values('똠방각하', 2  );";
    		
    		StringReader statementReader=new StringReader(sql);
    		
    		CCJSqlParser parser = new CCJSqlParser(statementReader);
    		
    		parser.Statement();				
    	}
    }
    
    

 

 

Ref

...