JDBC支持按参数名绑定解决了人大金仓数据库KingbaseES应用兼容接口可以按参数名绑定的问题

关键字

JDBC、参数名、绑定、人大金仓、kingbase

问题描述

应用可以通过JDBC接口使用按参数索引绑定或者按参数名绑定。

问题分析

应用端缺少JDBC接口支持按照参数名绑定的方式。

解决方案

在使用JDBC(Java Database Connectivity)操作Kes数据库时,可以使用JDK标准提供的接口,包含在CallableStatement中按照参数名绑定,操作的示例代码:

vbscript 复制代码
CallableStatement call = connection.prepareCall( "call proc1(?,1,?)");
call.setInt("a", 2);
call.registerOutParameter("c", Types.VARCHAR);
call.execute();
String col3 = call.getString("c");
call = connection.prepareCall( "{call proc1(?,1,?)}");
call.setInt("a", 2);
call.registerOutParameter("c", Types.VARCHAR);
call.execute();
col3 = call.getString("c");

可以使用kes私有接口按照参数名绑定,操作示例如下:

ini 复制代码
KbPreparedStatement pstm = (KbPreparedStatement) conn.prepareStatement("insert into t1 values(:a123_, :b, :c)");
pstm.setStringAtName("b", "aaa");
pstm.setIntAtName("a123_", 2);
pstm.setFloatAtName("c", 3.5f);
pstm.execute();
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("select * from t1");
while (rs.next()) {
assertEquals(2, rs.getInt(1));
assertEquals("aaa", rs.getString("b"));
assertEquals(3.5, rs.getFloat("c"), 0);
}
st.close();

这些示例展示了如何使用kes的JDBC按参数名绑定的功能。您可以根据自己的需求进行适当的调整和扩展。

参考资料

《KingbaseES客户端编程接口指南-JDBC.pdf》

相关推荐
q5673152318 分钟前
Curl 报 CONNECT tunnel failed, response 6xx:排查思路全解
数据库·网络协议·scrapy·http·中间件·http代理
疯狂打码的少年25 分钟前
【数据库技术】两级映像与数据独立性(逻辑/物理独立性)
数据库·笔记
Elastic 中国社区官方博客28 分钟前
从告警到根因仅需 3 分钟:使用 Elastic Agent Builder 实现自动化根因分析
运维·数据库·人工智能·elasticsearch·自动化·可用性测试
惜分飞35 分钟前
obet forcecopy功能抢救硬件故障中的数据文件
数据库·oracle
TDengine (老段)1 小时前
TDengine 应用案例 — 能源与电力监控
大数据·数据库·物联网·能源·时序数据库·tdengine·涛思数据
大模型码小白2 小时前
Spring AI 框架中集成 MCP 的完整指南:从服务端到客户端的全流程实践
大数据·运维·数据库·人工智能·python·sql·spring
YHL2 小时前
🐉 天龙八部 RAG 知识库实战:从零构建你的武侠 AI 助手
数据库·人工智能
lhldsg2 小时前
课程排课实战指南:从需求分析到系统落地全流程
数据库·数据挖掘·需求分析
ECT-OS-JiuHuaShan2 小时前
共轭互逆链路论,彻底打击庸俗辩证法和不可知论
数据库·人工智能·算法·机器学习·数学建模
Sherotree2 小时前
Agent 工程笔记①:工具调用失败时,先查哪三层
网络·数据库·笔记