1.Activiti
Activiti是一个覆盖了业务流程管理、工作流、服务协作等领域的开源的、灵活的、易扩展的可执行流程语言框架。
KingbaseES已兼容至Activiti7。
Activiti的jar包及其依赖包可以从官方网站下载,也可以通过maven导入。KingbaseES有两种形态的驱动包:
- (推荐)Postgre形态:postgresql-42.2.9.jar,无需配置,替换后修改连接信息即可
- (不推荐)KingbaseES形态:kingbase8-9.0.0.jar,需要配置databaseType。SpringBoot整合时,整合包未提供
databaseType,修改配置较为繁琐。在使用多数据源时,同时配置PG原生的数据源和KES的数据源时,只能使用该方式,其它情况均不推荐。
驱动包均可以从KingbaseES官网下载获取。
2.Hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射
关系,是一个全自动的ORM框架,Hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以熟练地使用对象编程思维
来操纵数据库。
KingbaseES 提供了 Hibernate 的Oracle模式方言类Kingbase8Dialect和Mysql模式的方言类Kingbase8MysqlDialect,目前KingbaseES 共提供了以下几个方言包来支持Hibernate:
| 方言包 | 适用范围 |
|---|---|
| hibernate-2.0.dialect.jar | 2.0<=适用范围<2.1 |
| hibernate-2.1.dialect.jar | 2.1<=适用范围<3.0 |
| hibernate-3.0.dialect.jar | 3.0<=适用范围<3.0.3 |
| hibernate-3.0.3.dialect.jar | 3.0.3<=适用范围<3.6.0 |
| hibernate-3.6.0.dialect.jar | 3.6.0<=适用范围<4 |
| hibernate-4.dialect.jar | 4=<适用范围<6.0 |
| hibernate-6.0.dialect.jar | 6.0=<适用范围<6.2 |
| hibernate-6.2.dialect.jar | 6.2=<适用范围 |
3.Hibernate Spatial
Hibernate Spatial是Hibernate的通用扩展,用于处理地理数据。Hibernate Spatial允许您以标准化方式处理地理数据。它从
数据库支持地理数据的特定方式中抽象出来,并为地理数据存储和查询功能提供了标准化的跨数据库接口。
KingbaseES 提供了 Hibernate Spatial的方言类 PostgisESDialect,目前 KingbaseES 共提供了以下几个方言包来支持Hibernate Spatial,以及不同方言包适用的Hibernate版本:
| 方言包 | 适用范围 |
|---|---|
| hibernate-spatial-postgis-kingbase-1.0.jar | 3.0.3=<适用范围<3.6.0 |
| hibernate-spatial-postgis-kingbase-1.1.jar | 3.6.0=<适用范围<4.0 |
| hibernate-spatial-postgis-kingbase-4.jar | 4.0=<适用范围 |
Hibernate Spatial 方言包继承自 Hibernate 方言包,但以两个独立的形式发布,两种方言包之间没有直接的关系。
Hibernate Spatial 方言包支持 Hibernate 方言包的所有功能,导入Hibernate Spatial 方言包后,无需再导入Hibernate 方言包。
4.MyBatis
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息, 将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
5.MyBatis-Plus
MyBatis-Plus 是一个 Mybatis 的增强工具,在 Mybatis的基础上只做增强不做修改。
6.Liquibase
Liquibase 是一个用于跟踪、管理和应用数据库变化的开源的数据库重构工具。它将数据库的所有变化(包括结构和数据)
都保存在日志文件中,便于版本控制。
Liquibase 使参与应用程序发布过程的任何人都可以轻松的完成:
消除发布数据库时的错误和延迟。
部署和回滚特定版本的更改,而无需知道自己部署的内容。
将数据库和应用程序更改一起部署,以便它们始终保持同步。
日志文件支持多种格式,如XML,YAML,JSON,SQL等;支持多种运行方式,如命令行、Spring集成、Maven插件、Gradle插件等。
7.Flyway
Flyway 是一个开源的数据库迁移工具。相比于配置,它更多的是支持便捷和约定。Flyway 仅基于7个基本的命令: migrate、 clean 、 info 、 validate 、 undo 、 baseline 和 repair 。迁移可以用SQL或Java编写。支持多种运行方式,如命令行、JAVA
API、Maven插件、Gradle插件等。
8.EF6
微软为了支持 .NET 开发人员使用 .NET 对象处理数据库的对象关系映射程序(O/RM),开发出了一种(O/RM) 框架Entity Framework。该框架不要求开发人员编写大部分数据访问代码。Entity Framework目前支持两个版本:Entity Framework 6 和 Entity Framework Core。
EntityFramework6.Kdbndp是Kdbndp实体框架(EF)核心程序。它的行为与其他EF6引擎驱动程序(例如SQL Server)类似。目前KingbaseES 支持 .NET Framework 4.0以上版本。
| 方言包 | 适用范围 |
|---|---|
| net40.rar | .net framework 4.0 |
| net45.zip | .net framework 4.5 |
9.Efcore
微软为了支持 .NET 开发人员使用 .NET 对象处理数据库的对象关系映射程序 (O/RM),开发出了一种(O/RM) 框架EntityFramework。该框架不要求开发人员编写大部分数据访问代码。Entity Framework目前支持两个版本:Entity Framework 6 和Entity Framework Core。
Entity Framework 6 是一种久经验证的数据访问技术。 2008 年,它作为 .NET Framework 3.5 SP1和 Visual Studio 2008 SP1的一部分首次发布。 从 4.1版开始,已作为 EntityFramework NuGet 包发布。EF6 在 .NET Framework 4.x 上运行,这意味着它仅在 Windows上运行。
Entity Framework Core (EF Core) 是在 2016 年首次发布的 EF6的完全重写。 它附带于 Nuget包中,是
Microsoft.EntityFrameworkCore 的主要组成部分。 EF Core 是一种跨平台产品,可以在 .NET Core 或 .NET Framework 上运行。
EF Core 旨在为开发人员提供类似于 EF6 的体验。EF Core支持多个数据库引擎,包括KingbaseES。为了支持EF core,KingbaseES提供了Kdbndp.EntityFrameworkCore.KingbaseES。
Kdbndp.EntityFrameworkCore.KingbaseES是Kdbndp实体框架(EF)核心程序。它的运行与其他EF core引擎驱动程序(例如SQL Server)类似。当前KingbaseES 支持 netstandard2.0 ef_core 2.0 及以上版本。
| 方言包 | 适用范围 |
|---|---|
| v9_efcore_net5.0.zip | .net5.0 <=适用范围< 6.0 |
| v9_efcore_net6.0.zip | .net6.0 <=适用范围<7.0 |
| v9_efcore_net7.0.zip | .net7.0 <=适用范围<8.0 |
| v9_efcore2.0.zip | .netcore2.0 <=适用范围<=netcore2.1 |
| v9_efcore3.0.zip | .netcore3.0 |
10.Qt
Qt是开源的跨平台开发框架,只需在对应平台上编译,便可以被运用于该系统。该驱动主要运用于客户开发的Qt项目。
Qt驱动并不能被直接使用,用户通过QSqlDatabase和QSqlQuery来获取指向该驱动的实例,然后通过QSql模块对外提供的
接口方法来操作数据库。
目前提供的Qt驱动支持情况如下表所示:
| Qt版本 | 系统架构 | 说明 |
|---|---|---|
| Qt4.8 | Linux amd64 | 仅提供64位支持 |
| Qt4.8 | Linux aarch64 | 仅提供64位支持 |
| Qt4.8 | Linux mips64le | 尚不支持该版本 |
| Qt4.8 | Windows MinGW | 仅提供32位支持 |
| Qt4.8 | Windows MSVC | 仅提供32位支持;使用VS2008编译,需要VC9运行时 |
| Qt5.6 | Linux amd64 | 仅提供64位支持 |
| Qt5.6 | Linux aarch64 | 仅提供64位支持 |
| Qt5.6 | Linux mips64le | 尚不支持该版本 |
| Qt5.6 | Windows MinGW | 仅提供32位支持 |
| Qt5.6 | Windows MSVC | 提供32和64位支持;使用VS2013编译,需要VC12运行时 |
11.SQLAlchemy
SQLAlchemy是一个基于Python实现的ORM框架,该框架建立在Python DB API之上,使用关系对象映射进行数据库操作。
SQLAlchemy本身无法操作数据库,其必须使用第三方插件,Dialect用于和数据库交互,根据配置的不同而调用不同的数据
库API从而实现对数据库的操作。
由于SQLAlchemy的Kingbase方言包依赖ksycopg2,因此方言包的支持情况与ksycopg2一致,如下表所示:
| Python版本 | 系统架构 | 说明 |
|---|---|---|
| Python2.7 | Linux amd64 | 仅提供64位支持 |
| Python2.7 | Linux aarch64 | 仅提供64位支持 |
| Python2.7 | Linux mips64le | 仅提供64位支持 |
| Python2.7 | Windows | 提供32和64位支持,32位需要VC9运行时,64位需要VC12运行时 |
| Python3.5 | Linux amd64 | 仅提供64位支持 |
| Python3.5 | Linux aarch64 | 仅提供64位支持 |
| Python3.5 | Linux mips64le | 尚不支持该版本 |
| Python3.5 | Windows MinGW | 提供32和64位支持,都需要VC12运行时 |
KingbaseES官方目前提供的SQLAlchemy方言包基于SQLAlchemy1.3.17制作,在SQLAlchemy其他版本上并没有进行充分测试,可能有不支持的情况。
12.Django
Django是一个高水准的Python编程语言驱动的开源模型,是视图、控制器风格的Web应用程序框架,它起源于开源社区。
使用这种架构,程序员可以方便快捷地创建高品质、易维护、数据库驱动的应用程序。
由于Django的KingbaseES方言包依赖ksycopg2,因此方言包的支持情况与ksycopg2一致,如下表所示:
| Python版本 | 系统架构 | 说明 |
|---|---|---|
| Python2.7 | Linux amd64 | 仅提供64位支持 |
| Python2.7 | Linux aarch64 | 仅提供64位支持 |
| Python2.7 | Linux mips64le | 仅提供64位支持 |
| Python2.7 | Windows | 提供32和64位支持,32位需要VC9运行时,64位需要VC12运行时 |
| Python3.5 | Linux amd64 | 仅提供64位支持 |
| Python3.5 | Linux aarch64 | 仅提供64位支持 |
| Python3.5 | Linux mips64le | 尚不支持该版本 |
| Python3.5 | Windows MinGW | 提供32和64位支持,都需要VC12运行时 |
KingbaseES官方目前提供两个Django方言包,一个基于Django1.11.29(支持Python2.7和Python3)制作,另一个基于Django2.2.14(仅支持Python3),在Django其他版本上并没有进行充分测试,可能有不支持的情况。
13.DbUnit
DbUnit是一个基于Junit扩展的数据库测试框架。它提供了大量对于数据库相关操作进行抽象和封装的类。它通过使用用户自定义的数据集以及相关操作使数据库处于一种可知的状态,从而使得测试自动化、可重复和相对独立。




