调用存储过程

简介: 引用:http://blog.sina.com.cn/s/blog_58b90369010008xy.html MYSQL DELIMITER $$ DROP PROCEDURE IF EXISTS `freewap`.

引用:http://blog.sina.com.cn/s/blog_58b90369010008xy.html

MYSQL
DELIMITER $$
DROP PROCEDURE IF EXISTS `freewap`.`add_user` $$
CREATE  DEFINER=`root`@`localhost` PROCEDURE `add_user`(
 IN name TEXT,
        IN pwd TEXT,
        IN email TEXT,
 IN qq TEXT,
  IN birthday DATE,
  IN sex tinyint,
 IN pwdquestion TEXT,
 IN pwdanswer TEXT,
 IN firstpwd TEXT
 )
BEGIN
    INSERT INTO `tbl_user`(u_name, u_pwd, u_email, u_qq, u_birthday, u_sex, u_pwdquestion, u_pwdanswer, u_firstpwd)
    VALUES (name,pwd,email,qq,birthday,sex,pwdquestion,pwdanswer,firstpwd);
  END $$
DELIMITER ;
 
 
JSP代码片断:
 private  CallableStatement cStmt = null;
//调用存储过程查询,需要返回查询结果

 public ResultSet callQuery (String proc)
 {
  rs=null;
  try{
      cStmt=conn.prepareCall("CALL "+proc +";",ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
      rs=cStmt.executeQuery();
  }
  catch (SQLException ex)
  {
   System.err.println("DAO.DBBean.executeQuery() ERR :"+ex.getMessage());
  }
  return rs;
 }
 
 //调用存储过程更新,不需要返回
 public void callUpdate (String proc)
 {
  rs=null;
  stmt=null;
  try{
   System.out.println("{CALL "+proc+"}");
   cStmt=conn.prepareCall("{CALL "+proc+"}");
   cStmt.execute();
  }
  catch (SQLException ex)
  {
   System.err.println("DAO.DBBean.callUpdate() ERR :"+ex.getMessage());
  }
 }
 
//插入数据。添加用户,在注册时使用
 public void addUser(UserBean user) throws SQLException {
  DBBean dbbean = new  DBBean();
  dbbean.openConn();
  try
     {
   StringBuffer sql = new StringBuffer();
       sql = new StringBuffer("add_user(");
       sql.append("'" + user.getU_name() + "',");
       StrEncrypt strencrypt=new StrEncrypt();
       sql.append("'" + strencrypt.EncryptStr(user.getU_pwd()) + "',");
       sql.append("'" + user.getU_email() + "',");
       sql.append("'" + user.getU_qq() + "',");
       sql.append("'" + new java.sql.Date(user.getU_birthday().getTime()) + "',");
       sql.append("" + user.getU_sex() + ",");
       sql.append("'" + user.getU_pwdquestion() + "',");
       sql.append("'" + user.getU_pwdanswer() + "',");
       sql.append("'" + user.getU_pwd() + "'");
       sql.append(")");
       dbbean.callUpdate(sql.toString());
     }
     catch (Exception sqle)
     {
         sqle.printStackTrace();
     }
     finally
     {
      dbbean.closeCall();
     }
   }
相关文章
|
存储 SQL NoSQL
存储过程与函数
MySQL从5.0版本开始支持存储过程和函数。存储过程和函数能够将复杂的SQL逻辑封装在一起,应用程序无须关注存储过程和函数内部复杂的SQL逻辑,而只需要简单地调用存储过程和函数即可
存储过程与函数
|
8月前
|
存储 SQL NoSQL
第15章_存储过程与函数
第15章_存储过程与函数
79 0
|
SQL 存储
SQL存储过程中调用存储过程返回的表
存储过程pro_A返回一个表集合TableA,在存储过程pro_B中以TableA为数据源再做一重过滤,想实现代码复用,因此原意是在存储过程pro_B中调用存储过程pro_A,但事实发现我们不能写成select * from (exec pro_A para1,para2) a ;虽然返回结果是表集合。
899 0