SQL中的Action(1)

         Java struts中的总控制器action大家都很熟悉了 。刚接触struts的是时候觉的那个总控制器实在是

太棒了。
java:
用户将请求提交给action,通过读struts-config.xml找到下发给哪个action
sql:程序将请求提交到数据库的1个控制器(可以有多个控制器),控制器在分发执行。
sql中的控制器我大体分
查询控制器
操作控制器
其他


OK我们来些个控制器
1.建立表
CREATE TABLE [dbo].[t_userinfo] (
 [FID] [int] IDENTITY (1, 1) NOT NULL ,
 [Fname] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [Fpwd] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
 [FSex] [bit] NULL ,
 [Femail] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
2.操作控制器


CREATE proc UserinfoAction
(
@Fname varchar(50),
@Fpwd  varchar(50),
@FSex  bit,
@Femail varchar(100),
@request int,
@response varchar(100) output
)
as
begin
 declare @count int
 if(@request=1)--增加
 begin
  select @count=count(Fname) from t_userinfo where Fname=@Fname
  if(@count=0)
  begin
   insert into t_userinfo (Fname,Fpwd,Fsex,Femail) values

(@Fname,@Fpwd,@FSex,@Femail)
   set @response='添加成功!'
   return
  end 
  else
  begin
   set @response='用户名以存在'
   return
  end
  
 end
 else if(@request=2)--修改密码
 begin
  update t_userinfo set Fpwd=@Fpwd   where Fname=@Fname
  set @response='密码修改成功'
  return
 
 end
 else if(@request=3)--修改信息
 begin
  update t_userinfo set Fsex=@Fsex,Femail=@Femail   where Fname=@Fname
  set @response='信息修改成功' 
  return

 end
 else if(@request=4)--删除用户
 begin
  delete t_userinfo where Fname=@Fname
  set @response='用户删除成功' 
  return
 end


end

 

测试
declare @response varchar(50)
--新增用户
--execute UserinfoAction 'wgx','123','1','xinao520@126.com',1,@response output
--密码修改
 --在修改密码 里只跟用户名和密码有关,这个时候我们性别,和email可有也可以没有
--execute UserinfoAction 'wgx','2d344','','xinao520@126.com',2,@response output
--修改信息
--execute UserinfoAction 'wgx','','1','hello@126.com',3,@response output
--删除用户

execute UserinfoAction 'wgx','','','',4,@response output

select @response


select * from t_userinfo

注意的事项
1.在分支里写return

2.用不到的参数可以不赋值,也可以赋值,根据程序来,怎么方便怎么来
java里一般都是对象整个传过来,一般全赋值

调用存储过程的时候只要注意 request参数
他来决定是执行什么操作
比如  
new UserService().UpdateCreateUser(User u,1)新增用户

new UserService().UpdateCreateUser(User u,2)用户修改密码

new UserService().UpdateCreateUser(User u,3)用户修改资料

效率问题
存储过程的效率肯定是比程序里调SQL高

今天先总结到这里。这些只是我个人的积累,有些人可能不爱这么用。
希望大家都给我提宝贵意见。我会及时修正。
谢谢 
Wind's Leaf

 

 


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值