18 存储过程

关于存储过程的概念、种类、语法、格式、功能以及优缺点请参考百度百科:

http://baike.baidu.com/view/68525.htm

创建存储过程:sql server 2000

以下例子使用的是jdbc driver2.0

企业管理器-存储过程-创建存储过程

例一:读取数据的存储过程

CREATE PROCEDURE selectInfo
As
select * from dtree
GO

 在jsp中调用该存储过程selectInfo方法如下

<%
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); 
  String url="jdbc:sqlserver://localhost:1433;DatabaseName=database"; 
  String user="sa"; 
  String password="";   
  Connection conn= DriverManager.getConnection(url,user,password); 
  CallableStatement cstmt = conn.prepareCall("{call selectInfo}");  //{后面不能有空格   
  ResultSet rs=cstmt.executeQuery(); 
  while(rs.next()) {%> 
  您的第一个字段内容为:<%=rs.getString(1)%> <br>
  您的第二个字段内容为:<%=rs.getString(2)%> <br>
  您的第三个字段内容为:<%=rs.getString(3)%> <br>
  <%}%> 
  <%out.print("数据库操作成功,恭喜你");%> 
  <%rs.close(); 
  conn.close();   
  %> 
 

例二:插入数据

存储过程insertInfo

CREATE PROCEDURE insertInfo 

   @param1 char(50),@param2 varchar(50)

as
   insert userlist(username,pwd)  Values(@param1,@param2)
RETURN 1
GO

 jsp中调用insertInfo存储过程

<%
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url="jdbc:sqlserver://localhost:1433;databaseName=database;user=sa;password="; 
String sql = "{?=call insertInfo(?,?)}"; 
Connection conn = null;
CallableStatement cstmt = null;
try{   
 conn= DriverManager.getConnection(url); 
 cstmt = conn.prepareCall(sql);
 cstmt.registerOutParameter(1,java.sql.Types.INTEGER);
 cstmt.setString(2,"admin");
 cstmt.setString(3,"pwd");
 cstmt.execute(); 
 int returnValue = cstmt.getInt(1);
 if(returnValue == 1)
 {
  out.print("<li>添加成功!");
 }
 else
 {
  out.print("<li>添加失败!");
 }
}
catch(Exception ex)
{
    out.print(ex.getLocalizedMessage());
}
finally
{
    try
    {
        if(cstmt != null)
        {
            cstmt.close();
            cstmt = null;
        }
        if(conn != null)
        {
            conn.close();
            conn = null;
        }
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
}

%> 
 

猜你喜欢

转载自zhiyongliu.iteye.com/blog/1720255
18
今日推荐