同样的SQL 在 数据库中执行就是正常的 ,用的了mybatis 和 druid  在程序里面就报错这个错误了。 

sql injection violation, syntax error: syntax error, error in :'imit 0, 10', expect COMMA, actual COMMA pos 242, line 5, column 40, token COMMA 

sql注入冲突,语法错误:语法错误,错误在:'mit 0,10',预期COMMA,实际COMMA位置242,第5行,第40列,标记COMMA

是limit 0,10  怎么被截断了。sql injection violation,为了快速解决这个问题 我把数据库连接池的sql校验去掉了。

数据库的链接池是 alibaba druid

增加的配置是

      druid:
        filters: slf4j

启动没有报错。

问题2 ,除了解决sql 校验以外。sql语法是不是也有问题。本来sql是在mysql 上面执行的。现在迁移到postgresql上面。

postgresql 的limit语法是什么样的。我们用的是分页。

分页的查询的应用中,需要在 SELECT 语句使用 LIMIT 子句和 OFFSET 子句。如下:

SELECT column_list
FROM table_name
LIMIT rows_count OFFSET skipped_rows;

比如:

  • 第一页可以使用: LIMIT 10 OFFSET 0 表示最多返回 10 行。
  • 第二页可以使用: LIMIT 10 OFFSET 10 表示跳过第一页的 10 行后最多返回 10 行。
  • 第三页可以使用: LIMIT 10 OFFSET 20 表示跳过前两页的 20 行后最多返回 10 行。
  • 以此类推…

文章结束了




下面是美图分享

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐