iBatis 调用 存储过程返回结果集

本文介绍了如何使用iBatis调用PostgreSQL的存储过程f_login_user(),该过程接收登录名和密码作为参数,返回一个游标。在iBatis的SqlMap配置中,定义了resultMap和parameterMap处理数组类型和存储过程调用。在DAO层,通过SqlMapClient查询存储过程并获取结果,将结果自动映射到UserBean对象。此外,还提到了PostgreSQL存储过程返回多行记录和多个结果集的方法。
摘要由CSDN通过智能技术生成
 数据表: t_user
CREATE TABLE t_user
(
  id serial NOT NULL,
  login_name character varying(20) NOT NULL,
  login_passwd character varying(20),
  name character varying(20) NOT NULL,
  sex smallint NOT NULL DEFAULT 1,
  phone character varying(10)[],
  privilege integer[],
  CONSTRAINT t_user_pkey PRIMARY KEY (id)
)

此处我们看到 t_user表中有 serial字段(这是一个SEQUENCE,用法与Oracle略同,有一点点差异),建表的时候,PostgreSQL会自动建一个SEQUENCE与id字段关联,并且默认值为 nextval(t_user_id_seq),其次我们看到phone字段的类型是varchar(10)这样的一个数组,privilege的类型是int的数组。

我们创建一个登录的存储过程:f_login_user()
CREATE OR REPLACE FUNCTION f_login_user(p_login_name in character varying, p_login_passwd in character varying)
RETURNS refcursor
AS
$BODY$
DECLARE
    p_user_cur refcursor;
BEGIN
    OPEN p_us
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值