2014-07-09 52 views
0

试图运行下面的代码,在这个SQL语句试图找到colName2像group/test那样的值“(最后双引号的名字),并通过querySQL所字符串josql解析器。用双引号解析joSQL查询导致org.josql.parser.TokenMgrError:词法错误

public static void main(String a[]) 
{ 
    String querySQL = new String("Select * from tabName WHERE ((colName1) = ((\"type\")) AND (colName2) LIKE ((\"%group/test\"%\"))) ORDER BY colName2 asc"); 
    org.josql.Query josql = new org.josql.Query(); 
    try 
    { 
     josql.parse(querySQL); 
    } 
    catch (Exception e) 
    { 
     e.printStackTrace(); 
    } 
    System.out.println(josql.toString()); 
} 


以下异常已经发生,当我运行它,colName2包含在它双引号的字符串。没有人有关于如何通过任何想法josql解析器的双引号?

线程“main”org.josql.parser中的异常。 TokenMgrError:后:: “\”)))ORDER BY colName2 ASC”
在org.josql.parser.JoSQLParserTokenManager.getNextToken(JoSQLParserTokenManager.java:1420)
在组织位于第1行,列150遇到的词汇错误。 josql.parser.JoSQLParser.jj_scan_token(JoSQLParser.java:3725)
.........
.........

在org.josql.parser.JoSQLParser。查询(JoSQLParser.java:298)
在org.josql.parser.JoSQLParser.parseQuery(JoSQLParser.java:86)
在org.josql.Query.parse(Query.java:2032)
at main.JoSqlTest.main(JoSqlTest.java:12)

回答

0

为什么你需要双引号?

可以/应该使用这里的单引号...

“从TABNAME选择*其中colName1 = '类型' AND colName2 LIKE“%组/测试\” %'ORDER BY colName2 ASC“