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》

相关推荐
tju23337 小时前
信创产业二十年:国产基础软件走到哪一步了?
数据库·gitee
东方护航数据恢复(深圳)8 小时前
RAID5单盘故障后阵列状态分析与重建风险评估_东方护航数据恢复深圳店
大数据·数据库
会编程的土豆8 小时前
GORM 常见操作从入门到能写 DAO
数据库·gorm
A15362558 小时前
2026 电商物流系统推荐:多渠道仓配履约数字化选型指南
大数据·数据库·人工智能
ClouGence10 小时前
CloudDM:开源免费!一站式数据库访问、SQL审核、权限与脱敏管控平台
数据库·sql·开源
(轻舟已过万重山)10 小时前
第39章 评估迭代:上线只是开始,迭代才是关键
大数据·数据库·人工智能
oradh10 小时前
Oracle参数文件(PFILE与SPFILE)维护操作总结
数据库·oracle·oracle参数·spfile·pfile
l1t10 小时前
kryonix提交的DuckDB 统一并优化标量执行器基础设施 - #24564 PR
开发语言·数据库·数据仓库·sql
鸽芷咕10 小时前
【金仓数据库征文】从 Oracle 到金仓:一次零误差的数据库国产化迁移实录
数据库·oracle
05664612 小时前
RAG 向量检索:从“查字“到“查意“
数据库·人工智能·学习·oracle