ibatis重点总结

一、非查询(增删改)语句

1、自动生成的键

--oracle&postgresql

<insert id="insert">
	<selectKey 
		keyProperty="accountid"
		resultClass = "int">
		SELECT nextVal('account_accountid_seq')
	</selectKey>
        INSERT INTO Account(
                   accountId, username, password
        )VALUES(
           #accountId#, #username#, #password#
        )
</insert>

</pre><p>--Microsoft sql server</p><p></p><pre name="code" class="html"><insert id="insert">
 	INSERT INTO Account(
	username, password
)VALUES(
	#username#, #password#
)
<selectKey
	keyProperty="accountId"
	resultClass="int">
	SELECT SCOPE_IDENTITY()
<selectKey>
</insert>

2、调用存储过程

IN、OUT、INOUT参数

in--传参数

inout--传递给存储过程并且可以被修改的参数

out---它们和返回结果(例如resultMap结果)很相似,但是又可以像参数那样被传递给存储过程。被传递给存储过程的值将被忽略,然后被程序所返回的值所替代。

create or replace procedure maximum
(a in integer, b in integer, c out integer) as 
begin 
	if(a > b) then c:=a; end if;
        if(b>=a) then c:=b; end if;
end;

xml里面进行调用:

<parameterMap id="maxOutProcddureMap" class="java.util.Map">
	<parameter property="a" mode="IN"/>
	<parameter property="b" mode="IN"/>
 	<parameter property="c" mode="OUT"/>
</parameterMap>
<procedure id="maxOutProcddure"
			parameterMap="maxOutProcedureMap">
	{ call maximum (?,?,?) }
</procedure>


// call maximum function

Map m = new HahsMap(2);

m.put("a", new Integer(7));

m.put("b", new Integer(5));

sqlMap.queryForObject("Account.maxOutProcedure", m);

// m.get("c") should be 7 now.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值