使用SQL管理功能分页时换行符未过滤

今天使用3.3版的SQL管理功能,感觉非常方便。特别是在使用 Db.paginate方法时可以直接传入SQLPara,不用再分隔SELECT了。但是发现一次查询时,报SQL语句有问题。

()
    SELECT * FROM region_detail_view;

使用

SqlPara para = Db.();
Page<Record> regionPage = Db.(page, pageSize, para);

查询。

跟踪到DbPro的

Page<Record> paginate(pageNumber, pageSize, SqlPara sqlPara) {
    String[] sqls = PageSqlKit.parsePageSql(sqlPara.getSql());
    .doPaginate(pageNumber, pageSize, (Boolean), sqls[], sqls[], sqlPara.getPara());
}

sqls数组拿到的sqlPara.getSql()是

    SELECT * FROM region_detail_view;\n

因此最终拼接的SQL语句中也多了一个\n所以报查询错误。SqlPara.getSql()应该对换行,制表符等转义控制符进行过滤。不知道有什么好的解决办法?


评论区

没牙的小朋友

2017-12-29 16:40

不好意思。是因为SQL语句后面有分号导致的。

热门反馈

扫码入社