发新话题
打印

用jsqlparser过滤数据集,使用sql 查询的语法

中文的sql语句解析出异常

我用带sql语句解析是出现异常  这是源码
              Statement statement =pm.parse(new StringReader("select * from a where 姓名='崔永远'"));
                if (statement instanceof Select) {
                        Select selectStatement = (Select) statement;
                        PlainSelect ps= (PlainSelect)selectStatement.getSelectBody();
                        System.out.println(selectStatement.getSelectBody());
                        System.out.println(ps.getWhere().toString());
                        System.out.println(((GreaterThan) ps.getWhere()).getRightExpression());
                        System.out.println(((GreaterThan) ps.getWhere()).getStringExpression());
                        SqlParsersUtil sqlParsersUtil = new SqlParsersUtil();
                        List tableList = sqlParsersUtil.getTableNames(selectStatement);
                        for (Iterator iter = tableList.iterator(); iter.hasNext();) {
                                System.out.println(iter.next().toString());
                        }
                }


下面是异常信息
Exception in thread "main" net.sf.jsqlparser.parser.ParseException: Encountered "<EOF>" at line 0, column 0.
Was expecting one of:
    "DROP" ...
    "WITH" ...
    "DELETE" ...
    "CREATE" ...
    "SELECT" ...
    "INSERT" ...
    "UPDATE" ...
    "REPLACE" ...
    "TRUNCATE" ...
    "(" ...
   
        at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:5530)
        at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:5406)
        at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:138)
        at com.ytec.bi.ride.analytics.util.SqlParsersUtil.main(SqlParsersUtil.java:172)

TOP

发新话题