joSQL查询与双引号解析导致org.josql.parser.TokenMgrError:词法错误

时间:2014-07-09 10:37:01

标签: parsing double-quotes lexical josql

尝试运行以下代码,在此SQL语句中尝试查找colName2如group / test" (名称最后有双引号),并将querySQL字符串传递给josql解析器。

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:第1行第150列的词汇错误。遇到:之后:" \" )))按照colName2 asc"
的顺序 在org.josql.parser.JoSQLParserTokenManager.getNextToken(JoSQLParserTokenManager.java:1420)
在org.josql.parser.JoSQLParser.jj_scan_token(JoSQLParser.java:3725)
.........
.........

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

1 个答案:

答案 0 :(得分:0)

为什么需要双引号?

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

“从tabName中选择* WHERE colName1 ='type'AND colName2 LIKE'%group / test \”%'ORDER BY colName2 asc“