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》

相关推荐
Nturmoils7 小时前
集中式与分布式怎么选:从订单读写看 KingbaseES 的架构边界
数据库
xiaomuzuirenzhen7 小时前
大专电子商务从事电商运营分析师需要考证吗?
大数据·数据库
翔云12345610 小时前
RocksDB中,客户端每写入一次数据,需要访问几次磁盘
运维·数据库·mysql
DevOpenClub10 小时前
职教高考控制线 API:招生类别枚举、筛选与空分数含义
java·数据库·高考
GeW11 小时前
新质生产力路线图解读:数据库性能优化与Linux调优专场
linux·数据库
在多学一点13 小时前
MYSQL第二次作业
android·数据库·mysql
Risehuxyc13 小时前
Microsoft.Data.Sqlite体验
数据库·sqlite
骑着蜗牛撵大象32713 小时前
MySQL 8.0 迁移后 SQL 变慢:执行计划里 3 类被忽略的成本差异
android·数据库·sql·mysql·优化器·执行计划
ZENERGY-众壹14 小时前
告警风暴怎么压?100MW 电站监控平台告警引擎架构复盘
数据库·架构·iot·电站监控
zhengfei61115 小时前
Go-fastdfs /reload 未授权访问: 有效PoC
数据库·sql