• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

jsp中调用Bean,然后在Bean中调用oracle存储过程。

发布: 2007-7-01 18:47 | 作者: admin | 来源: | 查看: 12次 | 进入软件测试论坛讨论

领测软件测试网 新手在写程序时,一定要胆大心细,而且要有耐心,不妥协,不懂就翻书,网上查资料,问朋友,坚决进行到底。

     最近一直凭着ASP的知识在摸索中前进,一跑坎坷,自不用说了。 言归正传。

     建立一个登录系统,要求达到以下目的。

     1、用户通过Bean来认证以及得到得到用户信息。

     2、记录用户登录信息,如用户登录次数,最后登录时间。

     3、记录操作日志。

    未解决及疑惑的问题:

    1、用户登录后的Session是否可以通过Bean来判断。

    2、通过Bean调用ORACLE存储过程,返回select后的记录集。

   操作步骤:

   1、建立用户验证Bean:

    public boolean checkUser() throws Exception {
    boolean flag=false;
    ResultSet rs=conn.executeQuery(getSql());
    if(rs.next()){
      userID        =rs.getString("userID");
      userName      =rs.getString("userName");
      userPWD       =rs.getString("userPWD");
      userUnit      =rs.getString("userUnit");
      userLoadTime  =rs.getDate("userLoadTime");
      userLoadNumeric=rs.getInt("userLoadNumber");
      flag=true;
    }
    rs.close();
    conn.closeConn();
    return flag;
  }
  

  通过返回的值判定用户是否存在。

 2、记录用户登录信息:

  public void changeLoginInfo(String userID) throws Exception{
    String sql="update SystemUserTable set UserLoadTime=sysdate,UserLoadNumber=UserLoadNumber+1 where userID=@#"+userID+"@#";
    conn.executeUpdate(sql);
  }

3、记录操作日志:

第一步,建立存储过程

create or replace procedure proc_writeNote(
  description in varchar2,
  wName in varchar2,
  wIP in varchar2
  )
is
begin
  insert into Systemnote (Id,Description,Wname,Wip) values(Autoaddid.Nextval,description,wName,wIP);
  commit;
end proc_writeNote;

第二步、建立操作存储过程的方法(重写prepareCall()方法)

  public CallableStatement prepareCall(String produce){
    try {
      conn = DriverManager.getConnection(DBUrl, UserID, UserPWD);
      cstmt=conn.prepareCall(produce);
    }
    catch (SQLException ex) {
      System.err.print("prepareCall():"+ex.getMessage());
    }
    return cstmt;
  }

第三步,执行存储过程

  public void writeNote(String description,String wName,String wIP){
    String sql="{call proc_writeNote(?,?,?)}";
    try {
      CallableStatement cstmt=conn.prepareCall(sql);
      cstmt.setString(1, description);
      cstmt.setString(2,wName);
      cstmt.setString(3,wIP);
      cstmt.executeUpdate();
    }
    catch (SQLException ex) {
      System.out.print("writeNote():"+ex.getMessage());
    }
  }

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网