Ibatis调用存储过程问题,虚心向大家请教,帮我一个大忙

xiaopingguoer 2010-04-08 09:27:42


use sysOA
GO
IF EXISTS(select * from sysobjects where name='proc_sysEmpLogin')
Drop procedure proc_sysEmpLogin
GO
create procedure proc_sysEmpLogin
@loginid varchar(50),
@password varchar(50),
@empid int output,
@reason varchar(50) output
as
select EmpID from mrBaseInf where LoginID=@loginid
if(@@RowCount<1)
begin
set @reason='noEmp' --不存在用户名@loginid
set @empid=0
end
else
begin
select EmpID from mrBaseInf where LoginID=@loginid and Password=@password
if(@@RowCount<1)
begin
set @reason='pError' --存在用户名,但是密码错误,PasswordError
set @empid=0
end
else
begin
select EmpID from mrBaseInf where LoginID=@loginid and Password=@password and AllowLogin=1
if(@@RowCount<1)
begin
set @reason='UnAllow' --存在此用户名和密码的用户,但是被禁止登录
set @empid=0
end
else
begin
set @reason='access' --此用户为合法登录用户
end
end
end

return
这是我的存储过程

下面的是我的实体类对应的xnl文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap
PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap>
<typeAlias alias="mrBaseinf" type="cn.nb.entity.MrBaseinf" /><!-- alias别名,parameterClass传的参数 -->
 <parameterMap id="tblLoginProcID" class="map">
  <parameter property="loginid" jdbcType="varchar"
  javaType="java.lang.String" mode="IN" />
  <parameter property="password" jdbcType="varchar"
  javaType="java.lang.String" mode="IN " />
  <parameter property="empid" jdbcType="int"
 javaType="java.lang.Integer" mode="OUT" />
  <parameter property="reason" jdbcType="varchar"
  javaType="java.lang.String" mode="OUT" />
</parameterMap>

<procedure id="LoginProcID" parameterMap="tblLoginProcID">
{call [proc_sysEmpLogin](?,?)}
</procedure>
</sqlMap>

public String[] Login(String LoginId, String password){}我要根据Jsp中输入值来判断返回的String数组
...全文
35 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧