JSP中调用存储过程

转帖|其它|编辑:郝浩|2008-09-28 09:46:37.000|阅读 1021 次

概述:JSP中调用存储过程

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

package db;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class BaseDao {
   private final static String driver= "com.microsoft.sqlserver.jdbc.SQLServerDriver";
   private final static String url= "jdbc:sqlserver://localhost:1433;databasename = czgc";
   private final static String userName= "sa";
   private final static String pwd= "123";
   Connection con = null;
   PreparedStatement pts = null;
 
 /**
  * 查找
  */
   public void find(){ 
      try {
          Class.forName(driver);
          con = DriverManager.getConnection(url,userName,pwd);
          String sql = "{call proc_test_selectAll}";   
          CallableStatement  cs = con.prepareCall(sql);   
          ResultSet rs =cs.executeQuery();
           while(rs.next()){
            System.out.println(rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3));
          }
          con.close();
      } catch (Exception e) {   
          e.printStackTrace();
      }
   }
 
 /**
  * 添加
  * @param name
  * @param sex
  * @param age
  * @return
  */
   public int add(String name,String sex,int age){
      int rows  = 0;
      try{
        Class.forName(driver);   
        con = DriverManager.getConnection(url,userName,pwd);
        String sql  = "{call proc_test_add(?,?,?)}";
        CallableStatement cs = con.prepareCall(sql);
        cs.setString(1, name);
        cs.setString(2, sex);
        cs.setInt(3, age);
        rows = cs.executeUpdate();
        con.close();
      } catch (Exception e1) {   
        e1.printStackTrace();
      }  
      return rows;
   }
 
   public static void main(String[] args) { 
      BaseDao d = new BaseDao();
      d.add("达尔", "男", 30);
      d.find(); 
   }
}

数据库:

prepareCall(String sql); 功能:获得CallableStatement对象

sql表示调用存储过程的语句:其调用格式为:{call 存储过程名(?,?,?)}


if exists (select * from sysobjects where name = 'proc_test_selectAll')
  drop proc proc_test_selectAll
go
 create proc proc_test_selectAll
as
  select * from test
go
 if exists (select * from sysobjects where name = 'proc_test_add')
   drop proc proc_test_add
go
 create proc proc_test_add
 @name varchar(10),
 @sex varchar(2),
 @age int
as
  insert into test values(@name,@sex,@age)
go


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:DIY部落

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP