代码拉取完成,页面将自动刷新
---
id: overview
sidebar_position: 1
hide_table_of_contents: true
title: 1. 介绍
description: dbVisitor 提供 Java 对关系数据库更加自然的访问。
---
import Vars from '@site/plugins/projectVars';
# 介绍
dbVisitor 数据库访问库,提供 Java 对多种不同类型数据库统一访问。它的目标是使用一套 API 访问所有数据库。
dbVisitor 是建立在 JDBC 基础之上,它改进了 JDBC 低级接口提供更加自然的 API。
主要包含如下三个部分:
- dbvisitor,是核心模块,为多种不同类型数据库提供统一的访问 API。
- dbvisitor-integration,是 dbVisitor 与主流框架的集成模块。
- 支持 [Spring/SpringBoot](./yourproject/with_spring)、[Solon](./yourproject/with_solon)、
[Hasor](./yourproject/with_hasor)、[Guice](./yourproject/with_guice)。
- dbvisitor-adapter,用于 JDBC 驱动程序适配器的模块,用于连接诸如 NoSQL 数据库之类的数据库。
- 例如:[Redis](./api/differences/redis)、[MongoDB](./api/differences/mongo)、[ElasticSearch](./api/differences/elastic)。
这不是一个对象关系映射框架。
- 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](https://www.apache.org/licenses/LICENSE-2.0.html) 许可协议。
- dbVisitor 只有 [Cobble](https://gitee.com/zycgit/cobble) 一个依赖(cobble 是一个类似 Apache Commons 或 Guava 的工具包)
- 所有 dbVisitor 模块以及依赖项都可以通过 [Maven Central](https://central.sonatype.com/search?q=dbvisitor) 获得。
## JVM 兼容性
dbVisitor 可在所有 Java 8 或更高版本上运行,所有版本均使用 Java 8 编译构建。
## 入门
- dbVisitor 支持通过原始 SQL 方式利用 [编程式 API](./api/program_api) 来访问数据库。
- dbVisitor 支持在接口上通过注解标记以 [声明式 API](./api/declarative_api) 方式来访问数据库。
- dbVisitor 支持通过 [构造器](./api/lambda_api) 方式用同一种 API 来访问所有框架支持的数据库。
- dbVisitor 支持通过 [BaseMapper](./api/base_mapper) 中预定的方法对数据库进行常规操作,从而简化应用。
- dbVisitor 支持使用 [使用 Mapper XML](./api/file_mapper) 文件配置统一管理 SQL 语句。
- dbVisitor 提供多种方式处理 [参数传递](./args/about),相信在各种特殊场景中总能找到一个适合的方式处理它们。
- dbVisitor 提供了一种更加灵活和高效的 [规则](./rules/about) 机制,通过规则可以更加简洁的维护应用程序 SQL。
- dbVisitor 内置多种 [类型处理器](./types/about),可以方便的处理绝大多数数据库类型。
- dbVisitor 支持在多个不同方法调用之间使用 [数据库事务](./transaction/about)。
- dbVisitor 使用统一的 API 操作非关系型数据库 [Redis](./api/differences/redis)、[MongoDB](./api/differences/mongo)、[ElasticSearch](./api/differences/elastic)。
## 框架整合
- [dbvisitor-spring](./yourproject/with_spring),支持最低使用 [Spring 4.x](https://spring.io/projects/spring-framework) 及 [Spring Boot 2、Spring Boot 3](https://spring.io/projects/spring-boot) 中自动配置和注入 dbVisitor 配置的 Mapper 和实例。
- [dbvisitor-solon](./yourproject/with_solon),支持在使用了 [Solon](https://solon.noear.org/) 作为应用程序开发框架的程序中自动配置和注入 dbVisitor 配置的 Mapper 和实例。
- [dbvisitor-hasor](./yourproject/with_hasor),支持在使用了 [Hasor](https://www.hasor.net/) 作为应用程序开发框架的程序中自动配置和注入 dbVisitor 配置的 Mapper 和实例。
- [dbvisitor-guice](./yourproject/with_guice),支持在使用了 [Google Guice](https://github.com/google/guice) 依赖注入的应用程序中自动配置和注入 dbVisitor 配置的 Mapper 和实例。
- [jdbc-redis](../drivers/redis/about) 是 Redis 的 JDBC 驱动适配器,它允许开发者使用标准的 JDBC 接口和 Redis 命令的方式来操作数据库。
- [jdbc-mongo](../drivers/mongo/about) 是 MongoDB 的 JDBC 驱动适配器,它允许开发者使用标准的 JDBC 接口和 MongoDB 命令的方式来操作数据库。
- [jdbc-elastic](../drivers/elastic/about) 是 ElasticSearch 的 JDBC 驱动适配器,它允许开发者使用标准的 JDBC 接口和 ElasticSearch QueryDSL 方式来操作数据。
## 版本事件
- 目前最新版本 v{Vars.lastReleaseVer} ({Vars.lastReleaseTime})
- `6.x` 版本 是一次全新的升级,在继承了 5.x 的功能,并针对不同风格 API 的实现做了较大改进使其在各个方面的用法和行为保持统一。
- `5.x` 版本 dbVisitor 正式从 Hasor 框架中分离出来并提供 编程式 API、声明式 API、构造器 三种不同风格的 API 来访问数据库。
- `4.x` 及以前版本中没有自己独立的版本,其发布跟随 [Hasor](https://www.hasor.net/) 框架发布。
## 联系作者
- 代码仓库: [Gitee](https://gitee.com/zycgit/dbvisitor)、[Github](https://github.com/zycgit/dbvisitor)
- Issue: [Gitee](https://gitee.com/zycgit/dbvisitor/issues)
- QQ 交流群: [948706820 (dbVisitor 使用交流1群)](https://qm.qq.com/cgi-bin/qm/qr?k=FpO8j2y59N7gGEvX7DOuB8Hx79lE425-&jump_from=webapi&authKey=QF7WNIwxzH6ZsVlCpJlcyFId++YPovIhI8TvuV8/L6x7Icf1FSqYGI/svlUZyF4R)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。