java用oracle还是mysql_java – 支持Oracle和MySQL:它们的SQL语法有多相似?

我们在一个项目中使用Oracle,并且也想支持

MySQL.他们的SQL方言有多接近?

在没有太多体操的情况下,是否有可能为两者使用相同的SQL源?

细节:

>我们正在使用iBatis,一个将SQL语句干净地隔离到资源文件中的持久性管理器.但我们在SQL级别工作,这有其优点(和缺点).

>我们宁愿不转向像Hibernate这样的对象关系映射器,它可以完全保护我们免受方言差异的影响.

>我们努力保持Oracle SQL的通用子集.

>没有PL / SQL.

>我们不使用存储过程或触发器(无论如何).

>我们使用检查约束,唯一约束和外键约束.

>我们使用ON DELETE CASCADE.

>我们使用交易(在iBatis API级别完成).

>我们在查询中调用了几个Oracle时间戳函数.

>我们将使用带有MySQL的InnoDB存储引擎(它支持事务和约束).

所以你的想法是什么?我们是否需要维护两组不同的iBatis SQL资源文件,每个方言一个,或者是否可以使用一组SQL支持MySQL和Oracle?

最后更新:感谢所有答案,特别是关于Troels Arvin关于差异的页面的指示.令人遗憾的是,标准并不是更好,标准.对我们来说,问题结果是MySQL自动增量与Oracle序列,MySQL LIMIT与Oracle Rowumber(),以及奇数函数或两个.大多数其他一切都应该很容易转移,模拟一些编辑,以确保我们使用SQL-92作为@mjv指出.更大的问题是某些查询可能需要在每个DBMS中进行不同的手动优化.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值