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》

相关推荐
程序员黎剑5 分钟前
Redis缓存击穿:热点Key过期打崩数据库的3种解决方案
数据库·redis·缓存
Carl_.Net软开9 分钟前
NSSM后台启动influx时序数据库
数据库·时序数据库
IPdodo_21 分钟前
静态 IP 访问异常排查:403/429 归因与迁移验收
服务器·网络·数据库·python·网络协议·php·性能测试
DevOpenClub22 分钟前
PDF 多格式解析如何避免混用输出:TEXT、HTML、XML 与 TAG 数据契约
xml·前端·数据库·pdf·html
meilindehuzi_a29 分钟前
从域名到数据库:React + Node.js 项目部署全流程与用户访问链路
数据库·react.js·node.js
泡干脆面就番茄1 小时前
MySQL_流程控制_分组查询与连接查询详解
数据库·mysql
Bode_20021 小时前
全生命周期 SQL 控制
数据库·智能制造
西西弗Sisyphus1 小时前
Qt 在无边框窗口上做一套换肤系统
开发语言·数据库·qt
神仙别闹1 小时前
基于 QT(C++)实现操作系统
数据库·c++·qt
Broccoli523026652 小时前
FastAPI + SQLAlchemy 异步会话(AsyncSession)核心方法
数据库·oracle·fastapi