jDialects([url]https://git.oschina.net/drinkjava2/jdialects[/url])是一个收集了大多数数据库方言的Java小项目,通常可用来创建分页SQL和建表DDL语句,可根据不同的数据库方言生成不同的SQL。目前jDialects支持75种数据库方言,包括Hibernate中没有的SQLLite和Access等。jDialects需要 Java7或以上版本支持。
jDialects起初是为了jSqlBox项目而开发的,但它本身是一个独立的项目(发布包只有90k大小且无其它第三方依赖),只要用到了SQL,就可以利用它来创建对应数据库的分页SQL和DDL。例如使用了纯JDBC、JdbcTemplate、DbUtils等以操作原生SQL的持久层工具,并有跨数据库需求的场合(例如单元测试需要同时在H2内存数据库和实际数据库MySql上跑),就可以利用这个工具来实现跨数据库的分页。 或者,你象我一样,正在开发一个支持多种数据库的持久层工具,也可以考虑利用上jDialects。
jDialects项目的主体部分是由代码生成工具从Hibernate5.2.9版本中抽取而自动生成,这从一定程度上也保证了它的代码质量。代码生成工具见jDiagen([url]https://github.com/drinkjava2/jDiagen[/url])项目。
如何在项目中引入jDialects?
下载 "jdialects-1.0.1.jar"并放入项目库目录,或在项目的pom.xml文件中加入:
在程序中使用
1) 创建跨数据库的分页:
Dialect d=guessDialect(dataSource); //根据数据源判断方言类型,
//Dialect d=guessDialect(connection); //或根据连接来判断方言类型
//Dialect d=Dialect.MySQL5Dialect; //或手工指定数据库方言类型
String result=d.paginate(3, 10, "select * from users where id=?"); //创建分页SQL
jDialects起初是为了jSqlBox项目而开发的,但它本身是一个独立的项目(发布包只有90k大小且无其它第三方依赖),只要用到了SQL,就可以利用它来创建对应数据库的分页SQL和DDL。例如使用了纯JDBC、JdbcTemplate、DbUtils等以操作原生SQL的持久层工具,并有跨数据库需求的场合(例如单元测试需要同时在H2内存数据库和实际数据库MySql上跑),就可以利用这个工具来实现跨数据库的分页。 或者,你象我一样,正在开发一个支持多种数据库的持久层工具,也可以考虑利用上jDialects。
jDialects项目的主体部分是由代码生成工具从Hibernate5.2.9版本中抽取而自动生成,这从一定程度上也保证了它的代码质量。代码生成工具见jDiagen([url]https://github.com/drinkjava2/jDiagen[/url])项目。
如何在项目中引入jDialects?
下载 "jdialects-1.0.1.jar"并放入项目库目录,或在项目的pom.xml文件中加入:
<dependency>
<groupId>com.github.drinkjava2</groupId>
<artifactId>jdialects</artifactId>
<version>1.0.1</version>
</dependency>
在程序中使用
1) 创建跨数据库的分页:
Dialect d=guessDialect(dataSource); //根据数据源判断方言类型,
//Dialect d=guessDialect(connection); //或根据连接来判断方言类型
//Dialect d=Dialect.MySQL5Dialect; //或手工指定数据库方言类型
String result=d.paginate(3, 10, "select * from users where id=?"); //创建分页SQL