开发者社区> 问答> 正文

Jfinal使用Druid连接池连接informix数据库时出现奇怪语法报错?报错

完全相同的项目,相同的config,相同的sql代码,在用oracle数据库不会报错,用c3p0也不会报错,只有同时使用druid和informix时才报这个异常
只要涉及到informix数据库访问就报这个异常[ERROR]-[Thread: http-nio-8080-exec-10]-[com.alibaba.druid.pool.DruidDataSource.init()]: init datasource error
java.sql.SQLException: A syntax error has occurred.

@Jfinal 波总求指教!万分感谢

展开
收起
爱吃鱼的程序员 2020-06-06 21:30:10 1073 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
                        <p>感谢波总,问题已解决。我去查了相关的druid源代码包,原来是validateQuery的验证语句出了问题,informix是不支持select 1的,而druid默认的并不适用informix。后来看了Jfinal连接池方法,加一句druidPlugin.setValidationQuery("select first 1 1 from systables");就搞定了,jfinal真心强大!<a class="referer" target="_blank">@JFinal</a> </p>
    
                    
    
                            把你的这条回复设置为最佳答案,会被置顶。 这样后来人在碰到这个问题就可以快速解决掉了
                        
    
                        <p><a class="referer" target="_blank">@JFinal</a> </p>
    
                    
    
                        <p>得配置 informix 的方言,但 jfinal 默认是没有提供 informix 的方言的,你可以参考 AnsiSqlDialect 写一个 InforMixDialect,然后配置一下:</p>
    
    activeRecordPlugin.setDialect(new InformixDialect());

        如果懒得写这个方言, 可以先使用 AnsiSqlDialect 用一下,这个方言支持所有符合 ANSI Sql 标准的数据库。还有一个办法是在网上搜索一下针对 jfinal 写的 informix 的方言,我记得有人写过并开源了

                        <p>波总,我就是一直用AnsiSqlDialect来连接informix数据库的,在c3p0连接池没有任何问题,为什么换了druid就会出错呢? <a class="referer" target="_blank">@JFinal</a> </p>
    
                    
    
                                回复 <a class="referer" target="_blank">@风逸灬杰</a>  : jfinal 仅仅是直接将 sql 与参数扔给 druid或c3p0而已,绝对没有区别对待。 你提到 spring 支持,那么看一下spring下用的哪个druid版本,在jfinal下也换成这个版本即可
                        
    
                            奇怪就奇怪在不用Jfinal,我同事用Spring,druid,informix,也没问题,所以想问问波总,咱们Jfinal对c3p0和druid有区别对待语法处理吗?
                        
    
                            假定你用的方言与 informix 驱动 jar 包都一样,自己写的 sql 也一样,只将 c3p0 替换成了 druid , 那么根据排除法,就得去 druid 找原因了。 看看 druid 官方文档有没有相关内容可以帮助解决
                        
    
                        <p>麻烦问一下你们的druid连接的informix的版本是什么,我这边一直显示不支持</p>
    
    2020-06-06 21:30:28
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载