浅谈 sql-translator 跨数据库的SQL转换实现原理

d289c1b6ca40612ed8280ef171c608ac.png

sql-translator sql转换器

预祝朋友们新年快乐,身体健康,永无BUG

今年是很特殊的一年,也是比较忙碌的一年,在年初有幸与腾讯同学一起开发过健康码项目,也算是贡献了自己的一份力。后来公司组建新的项目团队,我又马上参与到新项目的方案讨论与开发,直到年尾,也没轻松过。

公众号更文就少了,很对不住关注我的朋友们哈。

后台有粉丝留言,希望能学习sql-translator的代码,我这里也正式的简单介绍一下本项目吧。毕竟是我创建了github,真正的代码还没提交,就有朋友在关注这个项目了。不能辜负你们呢。

有任何技术问题,都可以后台留言哈。我看到了也会第一时间回复你们。

一、概述

前期项目基本是一套后端代码对应一套数据库环境,并没有考虑到跨数据库环境下的支持。后来随着项目不断维护, 需要切换到不同的数据库,那如何快速地改造项目去支持跨数据库呢?

对于我们的项目来说,目前是基于Mybatis去做持久层框架开发,并不像JPA对于跨数据库的兼容性高。

虽说Mybatisxml中编写SQL的时候,提供了参数databaseId来指定该条SQL是Oracle还是MySQL。如果项目里涉及到大量的SQL要去排查与改造,以及部分SQL还是通过代码去写的,改造起来的难度极大。

基于Mybatis要做跨数据库的难点总结如下:

  1. 原有Mybatis如果要配置跨库,SQL需要配置多套,后期SQL难以维护;

  2. 如果SQL是写在代码里面的,意味着代码要写多套,后期代码也是难以维护;

经过一段时间调研,发现目前还没有一款优秀的开源SQL转换工具。

经过一段时间整合使用后,对于转换数据库来说已经可以支持百分之七八十的语法转换。但是目前就仅支持Oracle转MySQL,在其完善度上还有很大提升空间,便基于这种方案思路,进行重构开源,希望借助开源的力量,和志同道合的朋友们来一起完善它。

接下来开始阐述一下:sql-translator 是什么?能做什么事?大概实现原理是什么?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java技术干货

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值