关键字
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》