package com.alibaba.druid.sql.parser; import com.alibaba.druid.sql.ast.expr.SQLCharExpr; import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlLoadDataInFileStatement; import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser; import junit.framework.TestCase; import org.junit.Assert; /** * Created by magicdoom on 2015/6/5. */ public class LoadDataSQLParserTest extends TestCase { public void test_load_data() throws Exception { String sql = "load DATA local INFILE '/opt/test.txt' IGNORE INTO TABLE test CHARACTER SET 'utf8' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' ESCAPED BY '\\\\' LINES TERMINATED BY '\r\n' (id,sid,asf) "; SQLStatementParser parser = new MySqlStatementParser(sql); MySqlLoadDataInFileStatement stmt = (MySqlLoadDataInFileStatement) parser.parseStatement(); // Assert.assertEquals("utf8",stmt.getCharset()) ; Assert.assertEquals(",",((SQLCharExpr)stmt.getColumnsTerminatedBy()).getText()) ; Assert.assertEquals("\"",((SQLCharExpr)stmt.getColumnsEnclosedBy()).getText()) ; Assert.assertEquals("\r\n",((SQLCharExpr)stmt.getLinesTerminatedBy()).getText()) ; Assert.assertEquals("\\",((SQLCharExpr)stmt.getColumnsEscaped()).getText()) ; } }