一、非查询(增删改)语句
1、自动生成的键
【ibatis重点总结】
--oracle&postgresql
SELECT nextVal('account_accountid_seq')
INSERT INTO Account(
accountId, username, password
)VALUES(
#accountId#, #username#, #password#
)
--Microsoft sql server
INSERT INTO Account( username, password )VALUES( #username#, #password# ) SELECT SCOPE_IDENTITY()
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里面进行调用:
{ call maximum (?,?,?) }
// 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.