use of com.alibaba.druid.sql.parser.Lexer in project druid by alibaba.
the class FirstCommentTest method test_first_commnet.
public void test_first_commnet() throws Exception {
String sql = "/*test sql*/select age from user where name = 'xx';";
Lexer lexer = new MySqlLexer(sql);
lexer.setKeepComments(true);
lexer.nextToken();
List<String> comments = lexer.readAndResetComments();
Assert.assertEquals("/*test sql*/", comments.get(0));
}
use of com.alibaba.druid.sql.parser.Lexer in project sharding-jdbc by dangdangdotcom.
the class SQLUtil method getTypeByStart.
/**
* 根据SQL第一个单词判断SQL类型.
*
* @param sql SQL语句
* @return SQL类型
*/
public static SQLStatementType getTypeByStart(final String sql) {
//TODO: Use new Lexer Util.
Lexer lexer = new Lexer(sql);
lexer.nextToken();
while (true) {
switch(lexer.token()) {
case SELECT:
return SQLStatementType.SELECT;
case INSERT:
return SQLStatementType.INSERT;
case UPDATE:
return SQLStatementType.UPDATE;
case DELETE:
return SQLStatementType.DELETE;
case EOF:
throw new SQLParserException("Unsupported SQL statement: [%s]", sql);
default:
lexer.nextToken();
}
}
}
Aggregations