2014-07-09 54 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「