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 波总求指教!万分感谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
麻烦问一下你们的druid连接的informix的版本是什么,我这边一直显示不支持
假定你用的方言与 informix 驱动 jar 包都一样,自己写的 sql 也一样,只将 c3p0 替换成了 druid , 那么根据排除法,就得去 druid 找原因了。 看看 druid 官方文档有没有相关内容可以帮助解决
奇怪就奇怪在不用Jfinal,我同事用Spring,druid,informix,也没问题,所以想问问波总,咱们Jfinal对c3p0和druid有区别对待语法处理吗?
回复
jfinal 仅仅是直接将 sql 与参数扔给 druid或c3p0而已,绝对没有区别对待。 你提到 spring 支持,那么看一下spring下用的哪个druid版本,在jfinal下也换成这个版本即可
波总,我就是一直用AnsiSqlDialect来连接informix数据库的,在c3p0连接池没有任何问题,为什么换了druid就会出错呢? @JFinal
得配置 informix 的方言,但 jfinal 默认是没有提供 informix 的方言的,你可以参考 AnsiSqlDialect 写一个 InforMixDialect,然后配置一下:
如果懒得写这个方言, 可以先使用 AnsiSqlDialect 用一下,这个方言支持所有符合 ANSI Sql 标准的数据库。还有一个办法是在网上搜索一下针对 jfinal 写的 informix 的方言,我记得有人写过并开源了
@JFinal
把你的这条回复设置为最佳答案,会被置顶。 这样后来人在碰到这个问题就可以快速解决掉了