关于druid连接池 postgresql库的复杂sql报错问题

@风吹四季

报错:expect RPAREN, actual WITH pos 18, line 2, column 3, token WITH :…

在使用java开发中,由于某些原因使得必须由oracle库迁移至postgresql库进行兼容,在配置好各种数据库表和数据后,在测试转换为postgresql方言后,简单的crud没有任何问题,发现某些复杂的查询sql在执行时总是不能够正常运行,将sql拷贝到pgadmin中执行又没有任何问题,后台总是打印报错:expect RPAREN, actual WITH pos 18, line 2, column 3, token WITH :…,在各种度娘的过程中,几乎一致的说是druid的过滤器针对sql保留关键字的问题,解决方案也一致加引号(‘’),但测试了好久却发现并不能解决这个问题(纠结两天)。。。,就想能否把druid的相关过滤配置给去除掉,于是在yml文件中找到这么一行
druid配置
于是就改成了这样:
druid配置
搜索了一下WallFilter 相关的东西,发现1.1.10版本的druid似乎对postgresql的支持不是那个好,,求大神指点这块。
完美解决复杂sql不能正确解析的问题。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
关于Druid连接池技术连接PostgreSQL数据的配置文件,可以参考下面的示例: ```properties # 数据连接信息配置 spring.datasource.driver-class-name=org.postgresql.Driver spring.datasource.url=jdbc:postgresql://localhost:5432/aaa?currentSchema=bbb spring.datasource.username=username spring.datasource.password=password # Druid连接池配置 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.initial-size=5 spring.datasource.min-idle=5 spring.datasource.max-active=20 spring.datasource.test-on-borrow=true spring.datasource.test-while-idle=true spring.datasource.validation-query=SELECT 1 ``` 其中,配置项的含义如下: - `spring.datasource.driver-class-name`:JDBC驱动名称,这里是PostgreSQL的驱动; - `spring.datasource.url`:数据连接地址,这里是连接名为 `aaa` 的数据,并指定使用模式名为 `bbb` 的模式; - `spring.datasource.username`:连接数据的用户名; - `spring.datasource.password`:连接数据的密码; - `spring.datasource.type`:指定Druid数据源的类型; - `spring.datasource.initial-size`:初始化连接池中的连接数; - `spring.datasource.min-idle`:连接池中最小空闲连接数; - `spring.datasource.max-active`:连接池中最大连接数; - `spring.datasource.test-on-borrow`:是否在从连接池中获取连接时测试连接是否可用; - `spring.datasource.test-while-idle`:连接空闲时是否测试连接是否可用; - `spring.datasource.validation-query`:测试连接是否可用的SQL语句。 在以上配置中,连接地址中的 `currentSchema` 参数可以指定连接当前会话使用的模式,如果省略,则默认使用 `public` 模式。对于表名为 `ccc` 的表,可以在SQL语句中使用 `bbb.ccc` 的方式来引用。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值