dbVisitor v6.1.0 发布,新增 Redis JDBC 驱动适配器,支持 140+ 命令
介绍
dbVisitor 是数据库访问库,提供 Java 对多种不同类型数据库统一访问。让数据的读写更加自然。dbVisitor 是建立在 JDBC 基础之上,它改进了 JDBC 低级接口提供更加自然的 API。主要包含如下三个部分:
- dbvisitor-adapter,是 JDBC 驱动适配器集合,目的是使不具备 JDBC Driver 的数据库可以用过 JDBC 接口访问。支持 Redis、MongoDB 等非关系型数据库。
- dbvisitor-integration,是 dbVisitor 与主流框架的集成模块。支持 Spring、SpringBoot、Solon、Hasor、Guice 等主流框架。
- dbvisitor,是核心模块,提供统一的数据库访问 API。
为什么使用它?
过去关系型数据库占主导时,数据访问手段已趋多样并且涌现了大量基于 JDBC 的成熟工具;但随着非关系型数据库兴起,数据存储形式更加多元访问 API 也变得更加复杂。开发者需要在不同的 API 之间切换,增加了学习成本和使用难度。 而已有的数据访问技术如 Hibernate、MyBatis、Spring JDBC 以及 ActiveRecord、QueryWrapper、Row、Chain、JPA 等主要针对关系型数据库,在面对日益多样的非关系型存储时显现出局限性。
dbVisitor 的核心突破在于访问模式的无缝集成:开发者可以在同一项目中混合使用多种访问范式,并在关系型与非关系型存储之间获得统一体验。 借助 drivers 模块,dbVisitor 已不再局限于通过 JDBC 访问关系型数据库,而是通过适配器支持例如 Redis、MongoDB 等非关系型数据库, 从而解决了传统多框架并存时的兼容性问题(例如 JdbcTemplate 与 MyBatis 的风格差异),并统一不同存储类型的操作接口。
更新内容
- [新增] dbvisitor-driver 子项目,它提供了一个灵活的 JDBC 驱动适配器实现。旨在抽象 JDBC 驱动的实现细节,使非关系型数据库能够通过请求/响应模型快速集成到基于 JDBC 的应用程序中。
- [新增] jdbc-redis 驱动适配器,它允许开发者使用标准的 JDBC 接口和命令的方式来操作 Redis 数据。
特性:
- 支持 140+ 常用命令,涵盖 DB、Server、Keys、List、Set、StoreSet、String、Hash 命令集。
- 支持 JDBC 标准接口,包括
Connection、Statement、PreparedStatement、ResultSet等。 - 支持 命令参数占位符 “?”,并使用
PreparedStatement设置参数。 - 支持 多命令执行并通过 JDBC 标准方法获取多命令执行结果。
- 支持
Statement的maxRows、fetchSize、timeoutSec属性设置。 - 支持 指令拦截器,可用于日志记录、性能监控等场景。
- 支持 类型转换,例如 结果集返回为
LONG类型时,可通过ResultSet.getInt或ResultSet.getString获取数据。 - 支持
BLOB、CLOB、NCLOB方式读取。
技术实现
jdbc-redis 架构设计采用了适配器模式,将标准的 JDBC 接口适配到 Redis 命令体系。主要组件包括:
- JedisConn:实现了 JDBC Connection 接口,是整个适配器的核心,负责连接管理和命令执行。
- JedisCmd:封装了 Jedis 客户端的各种命令接口,支持单实例和集群模式。
- JedisRequest:表示一个 Redis 命令请求。
- ANTLR4 解析器:用于解析 Redis 命令,生成 Redis 命令执行计划。
执行流程
- 用户通过 JDBC API 创建 Connection、Statement 并执行 Redis 命令。
- JedisConn 接收 Redis 命令,使用 ANTLR4 解析器解析命令。
- 解析后的命令通过 JedisCmd 转发给底层的 Jedis 客户端执行。
- 执行结果通过标准的 ResultSet 或更新计数返回给用户。
依赖技术
- Jedis:Redis 官方推荐的 Java 客户端,版本 6.1.0。
- ANTLR4:强大的语法解析器生成工具,用于解析 Redis 命令。
- dbVisitor-driver:基础的数据库驱动框架。
如何使用?
使用标准的 JDBC URL 格式连接 Redis:
String url = "jdbc:dbvisitor:jedis://server:port?database=0¶m1=value1¶m2=value2";
Properties props = new Properties();
props.setProperty("username", "user");
props.setProperty("password", "pass");
Connection conn = DriverManager.getConnection(url, props);
命令执行
// 创建连接
Connection conn = DriverManager.getConnection("jdbc:dbvisitor:jedis://localhost:6379");
// 执行命令
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SET mykey hello");
// 处理结果
rs = stmt.executeQuery("GET mykey");
if (rs.next()) {
System.out.println(rs.getString(1)); // 输出: hello
}
// 参数化查询
PreparedStatement pstmt = conn.prepareStatement("HSET ? ? ?");
pstmt.setString(1, "myhash");
pstmt.setString(2, "field1");
pstmt.setString(3, "value1");
ResultSet rs = pstmt.executeQuery();
关注公众号
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
🔥🔥🔥高质量代码 SmartAdmin 发布 V3.28.3
SmartAdmin「高质量代码、简洁、高效、安全」的快速开发平台 v3.28.3 版本 重磅更新 发布,更新如下: 【优化】支持SqlServer 【优化】前端代码生成 字段类型适配前端组件 SmartAdmin由中国・洛阳1024 创新实验室基于 SpringBoot2/3+Sa-Token+Mybatis-Plus 和 Vue3+Ant Design Vue+Uni-App+Uni-UI,并以「高质量代码」为核心,「简洁、高效、安全」的快速开发平台。 国内首个满足《网络安全 - 三级等保》、《数据安全》功能要求,支持登录限制、接口国产加解密、数据脱敏等一系列安全要求。 前端提供JavaScript 和 TypeScript 双版本,后端提供Java8+SpringBoot2.X 和 Java17+SpringBoot3.X 双版本。 支持国产数据库:【达梦、金仓、南大通用、OceanBase、GaussDB 高斯、阿里 PolarDB、GoldenDB 】等,主流数据库:【Mysql,PostgreSQL 】等 同时重磅开源开源六年来千余家企业验证过且正在使用的代码规范:《高质...
-
下一篇
EasyGoAdmin 敏捷开发框架 GoFrame+EleVue 版本 v2.5.0 发布
v2.5.0 更新内容: 1、go.mod 依赖管理导入 Excel 操作类依赖; 2、新增职级管理导出 Excel 数据的功能; 3、新增职级管理导入 Excel 模板文件; 4、新增职级管理导入 Excel 数据的功能; 5、新增职级管理导入、导出和下载模板的路由; 6、修复近期用户使用过程中反馈的 BUG; 项目介绍 一款 Go 语言基于 GoFrame、Vue、ElementUI、MySQL 等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架,可快速搭建前后端分离后台管理系统,本着简化开发、提升开发效率的初衷,框架自研了一套个性化的组件,实现了可插拔的组件式开发方式,同时为了敏捷快速开发,框架特地集成了代码生成器,完全自主研发了自定义 GO 后端服务模板和前端 Vue 自定义模板,可以根据已建好的表结构,可以快速的一键生成整个模块的所有代码和增删改查等等功能业务,真正实现了低代码开发方式,极大的节省了人力成本的同时提高了开发效率,缩短了研发周期,是一款真正意义上实现组件化、可插拔式的敏捷开发框架。 软件信息 软件名称:EasyGoAdmin 敏捷开发框架 G...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,CentOS7官方镜像安装Oracle11G
- MySQL数据库中FOR UPDATE的使用
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2全家桶,快速入门学习开发网站教程
- MySQL8.0.19开启GTID主从同步CentOS8

微信收款码
支付宝收款码