跳到主要内容

1. 介绍

dbVisitor 数据库访问库,提供 Java 对多种不同类型数据库统一访问。它的目标是使用一套 API 访问所有数据库。

dbVisitor 是建立在 JDBC 基础之上,它改进了 JDBC 低级接口提供更加自然的 API。

主要包含如下三个部分:

  • dbvisitor,是核心模块,为多种不同类型数据库提供统一的访问 API。
  • dbvisitor-integration,是 dbVisitor 与主流框架的集成模块。
  • dbvisitor-adapter,用于 JDBC 驱动程序适配器的模块,用于连接诸如 NoSQL 数据库之类的数据库。

这不是一个对象关系映射框架。

  • dbVisitor 是方便 Java 访问数据库的库,虽然有些类似 ORM 但和真正意义上的 ORM 理念比起来还是有很多不同点。

dbVisitor 是简单的,它专注数据库的访问。任何带有具体业务含义的特定功能都不属于 dbVisitor 范畴。 然而,您仍然可以利用这种巧妙的 API 设计来满足特定的业务需求。

为什么使用它?​

过去关系型数据库占主导时,数据访问手段已趋多样并且涌现了大量基于 JDBC 的成熟工具;但随着 NoSQL 数据库兴起,数据存储形式更加多元访问 API 也变得更加复杂。 开发者需要在不同的 API 之间切换,增加了学习成本和使用难度。

而已有的数据访问技术如 Hibernate、MyBatis、Spring JDBC 等主要针对关系型数据库,在面对日益多样的非关系型存储时显现出局限性。

dbVisitor 的核心突破在于访问模式的无缝集成:开发者可以在同一项目中混合使用多种访问范式,并在关系型与非关系型存储之间获得统一体验。

在 API 设计上,dbVisitor 提供了与 Spring JdbcTemplate、MyBatis 近似风格的 API,这种设计可以让开发者避免接受大量新的概念和知识,从而减少学习成本和使用难度。

使用 dbVisitor​

  • dbVisitor 使用商业友好的 Apache 2.0 许可协议。
  • dbVisitor 核心模块只有 Cobble 一个依赖(cobble 是一个类似 Apache Commons 或 Guava 的工具包)
  • 已发布模块可通过 Maven Central 获取。

入门​

  • dbVisitor 支持通过原始 SQL 方式利用 编程式 API 来访问数据库。
  • dbVisitor 支持在接口上通过注解标记以 声明式 API 方式来访问数据库。
  • dbVisitor 支持通过 构造器 方式用同一种 API 来访问所有框架支持的数据库。
  • dbVisitor 支持使用 Map 查询模式 处理 Map 数据,可选择复用对象映射或直接使用表名、列名。
  • dbVisitor 支持使用 向量查询 进行 KNN 排序和向量范围过滤。
  • dbVisitor 支持通过 Mapper API 用 Java 接口组织 DAO(含注解、BaseMapper 通用 CRUD、Mapper 文件)。
  • dbVisitor 支持使用 使用 Mapper XML 文件配置统一管理 SQL 语句。
  • dbVisitor 提供多种方式处理 参数传递,相信在各种特殊场景中总能找到一个适合的方式处理它们。
  • dbVisitor 提供了一种更加灵活和高效的 规则 机制,通过规则可以更加简洁的维护应用程序 SQL。
  • dbVisitor 内置多种 类型处理器,可以方便的处理绝大多数数据库类型。
  • dbVisitor 支持在多个不同方法调用之间使用 数据库事务。
  • dbVisitor 使用统一的 API 操作非关系型数据库 Redis、MongoDB、ElasticSearch。

框架整合​

  • dbvisitor-spring,支持最低使用 Spring 4.x 及 Spring Boot 2、Spring Boot 3 中自动配置和注入 dbVisitor 配置的 Mapper 和实例。
  • dbvisitor-solon,支持在使用了 Solon 作为应用程序开发框架的程序中自动配置和注入 dbVisitor 配置的 Mapper 和实例。
  • dbvisitor-hasor,支持在使用了 Hasor 作为应用程序开发框架的程序中自动配置和注入 dbVisitor 配置的 Mapper 和实例。
  • dbvisitor-guice,支持在使用了 Google Guice 依赖注入的应用程序中自动配置和注入 dbVisitor 配置的 Mapper 和实例。
  • jdbc-redis 是 Redis 的 JDBC 驱动适配器,它允许开发者使用标准的 JDBC 接口和 Redis 命令的方式来操作数据库。
  • jdbc-mongo 是 MongoDB 的 JDBC 驱动适配器,它允许开发者使用标准的 JDBC 接口和 MongoDB 命令的方式来操作数据库。
  • jdbc-elastic 是 ElasticSearch 的 JDBC 驱动适配器,它允许开发者使用标准的 JDBC 接口和 ElasticSearch QueryDSL 方式来操作数据。

版本事件​

  • 最新正式版:v6.8.1
  • 当前使用指南对应:6.8.1。
  • 6.x 版本 是一次全新的升级,在继承了 5.x 的功能,并针对不同风格 API 的实现做了较大改进使其在各个方面的用法和行为保持统一。
  • 5.x 版本 dbVisitor 正式从 Hasor 框架中分离出来并提供 编程式 API、声明式 API、构造器 三种不同风格的 API 来访问数据库。
  • 4.x 及以前版本中没有自己独立的版本,其发布跟随 Hasor 框架发布。

联系作者​