今天使用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()应该对换行,制表符等转义控制符进行过滤。不知道有什么好的解决办法?
项目:JFinal