0

尝试运行以下代码,在此 SQL 语句中尝试查找 colName2 like 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 解析器?

线程“主”org.josql.parser.TokenMgrError 中的异常:第 1 行第 150 列出现词汇错误。遇到:
在 org.josql.parser.JoSQLParserTokenManager.getNextToken(JoSQLParserTokenManager .java:1420)
在 org.josql.parser.JoSQLParser.jj_scan_token(JoSQLParser.java:3725 )
.........................

在 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)

4

1 回答 1

0

为什么需要双引号?

您可以/应该在此处使用单引号...

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

于 2015-06-15T13:11:47.927 回答