尝试运行以下代码,在此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)
答案 0 :(得分:0)
为什么需要双引号?
你可以/应该在这里使用单引号......
“从tabName中选择* WHERE colName1 ='type'AND colName2 LIKE'%group / test \”%'ORDER BY colName2 asc“