-
Notifications
You must be signed in to change notification settings - Fork 13
Yong Zhu edited this page Jan 20, 2018
·
8 revisions
jDialects是一个数据库方言工具,根据不同的实际数据库将SQL翻译成对应的原生SQL,以达到跨数据库开发的目的。
jDialects起初是为了jSqlBox项目而开发的,用于支持跨数据库开发。但在编写过程中发现,不光是jSqlBox,其它一些ORM项目以及非ORM项目都有类似的跨数据库需求,这是所有持久层工具必须解决的一个问题,纯Jdbc、JdbcTemplate、DbUtils、MyBatis等工具都不具备跨数据库支持功能,需要针对每一种数据库写不同的SQL,增加了开发工作量。因以上考虑,决定将它做成一个独立的项目。jDialects项目是目前所知唯一通用的、可用于所有持久层工具的数据库方言(70多种)工具,实现了比较齐全的分页、函数变换、DDL生成、JPA解析、主键生成等多项与数据库方言相关的功能。它的主要数据来源是基于Hibernate,这是考虑到Hibernate的方言比较齐全和成熟(但是Hibernate本身的方言功能与Hibernate内核捆绑在一起,不能单独使用),而且一直都在更新。
jDialect是一个独立的小项目,发布包约260K大小,没有任何第三方库依赖,支持Java6或以上。只要用到了原生SQL,就可以利用它来实现跨数据库开发。对于一些ORM项目来说,也可以考虑引入jDialects来避免重复发明轮子。jDialects项目的主体资料部分是由代码生成工具从Hibernate中抽取自动生成,这从一定程度上也保证了它的代码质量。代码生成工具详见jDiagen项目。