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》

相关推荐
我命由我123455 小时前
SQL 检测脚本
java·数据库·sql·功能测试·单元测试·压力测试·可用性测试
Zenova EdgeOS5 小时前
工业网关数据全链路加密实战:从传输、静态数据到密钥轮
数据库·oracle·边缘计算·工业网关
太理摆烂哥6 小时前
MySQL表的约束
数据库·mysql
Crayon Lin6 小时前
Milvus向量数据库入门
数据库·milvus
cspttty6 小时前
2027校招准备:数学与应用数学专业如何补齐管理咨询的业务、分析与表达能力
大数据·数据库
曹牧6 小时前
C#:字符串占位符与值数量不一致
开发语言·数据库·c#
小马不起床6 小时前
Django 后端实战指南_14:门店、省份、用户门店关系查询接口
数据库·django·sqlite
我星期八休息6 小时前
Redis 的原理和使用(2)
前端·数据库·redis·python·mysql·缓存·bootstrap
betazhou6 小时前
Apache Seatunnel 抽取SQL server实时同步到Oracle(四)
数据库·oracle·apache·sql server·seatunnel
l1t7 小时前
DeepSeek总结的PostgreSQL 的 MVCC 很糟。其他所有的也一样。第1部分
数据库·postgresql