IBATS如何调用mysql/oracle的function

本文详细介绍了如何利用iBatis框架在MySQL和Oracle数据库中调用Function与存储过程,并通过代码示例展示了配置与调用方法的区别。对于希望在不同数据库间灵活切换的开发者来说,此教程极具实用价值。

网上大多是ibats对oracle存储过程和函数的配置,由于oracle驱动支持在java代码中用call调用function,所以网上的配置也是正确的:

<parameterMap id="CommandDeleteById" class="java.util.Map">
        <parameter property="result" jdbcType="VARCHAR"
            javaType="java.lang.String" mode="OUT" /> 
        <parameter property="commandId" jdbcType="NUMBER"
            javaType="java.lang.Integer" mode="IN" />
        <parameter property="commandsetId" jdbcType="NUMBER"
            javaType="java.lang.Integer" mode="IN" />
        <parameter property="dbId" jdbcType="NUMBER"
            javaType="java.math.BigDecimal" mode="IN" />
    </parameterMap>
 <procedure id="Command_deleteById"
        parameterMap="CommandDeleteById">
        { ? = call truleadmin.DeleteCommand(?,?,?)} 
    </procedure>

但是mysql是不支持call function这种写法的,我估计在配置文件中这样写也会报错(没有测试上面的方法是否有效)。

其实ibats 调用 mysql的function是非常简单的,mysql也有dual这个保留字,所以我们可以想象用select functionname() result from dual这样的写法获得function的返回值,那ibats配置文件就完全可以用<select></select>去调用function。

如此简单的方法,估计将数据库换成oracle也是同样适用的!(mysql测试OK,oracle估计问题不大,没有进行测试)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值