站点信息 访问统计:442659     在线人数:4    本次启动时间:2010-9-11 5:35:42
当前位置:  Csdtn 首页->数据库->MsSql->文章
实例讲解JSP调用SQL Server的存储过程
作者:--- 时间:2009-3-1  点击:252  本文Tag:数据库 | jsp | 存储过程 | SQL Server

JSP调用SQL Server存储过程的实例:


创建表:

 

SQL代码
  1. CREATE TABLE [BookUser] (   
  2.     [UserID] [int] IDENTITY (1, 1) NOT NULL ,   
  3.     [UserName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,   
  4.     [Title] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,   
  5.     [Guid] [uniqueidentifier] NOT NULL CONSTRAINT [DF_BookUser_Guid] DEFAULT (newid()),   
  6.     [BirthDate] [datetime] NOT NULL ,   
  7.     [Description] [ntext] COLLATE Chinese_PRC_CI_AS NOT NULL ,   
  8.     [Photo] [image] NULL ,   
  9.     [Other] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL    
  10. CONSTRAINT [DF_BookUser_Other] DEFAULT ('默认值'),   
  11.     CONSTRAINT [PK_BookUser] PRIMARY KEY  CLUSTERED    
  12.     (   
  13.         [UserID]   
  14.     )  ON [PRIMARY]    
  15. ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]   
  16. GO   

 

创建存储过程:

 

SQL代码
  1. CREATE PROCEDURE InsertUser   
  2. @UserName varchar(50),   
  3. @Title varchar(255),   
  4. @Guid  uniqueidentifier,   
  5. @BirthDate DateTime,   
  6. @Description ntext,   
  7. @Photo image,   
  8. @Other nvarchar(50),   
  9. @UserID int output    
  10. As  
  11.   
  12. Set NOCOUNT ON  
  13. If Exists (select UserID from BookUser Where UserName = @UserName)   
  14. RETURN 0   
  15. ELSE  
  16. Begin  
  17. INSERT INTO BookUser (UserName,Title,Guid,BirthDate,Description,Photo,Other)    
  18. VALUES(@UserName,@Title,@Guid,@BirthDate,@Description,@Photo,@Other)   
  19. SET @UserID = @@IDENTITY   
  20. RETURN 1   
  21. End  
  22. GO  

 JSP代码:

 

XML/HTML代码
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>  
  2. <%@ page import = "java.sql.*"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    
  4. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  5. <html xmlns="http://www.w3.org/1999/xhtml">  
  6. <head>  
  7. </head>  
  8. <body>  
  9. <%   
  10. //注意:下面的连接方法采用SQL Server的JDBC,先下载sqlserver驱动。   
  11. Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");   
  12. String url="jdbc:sqlserver://localhost:1433;databaseName=Book;user=sa;password=";    
  13. String sql = "{? = call InsertUser(?,?,?,?,?,?,?,?)}";    
  14. Connection cn = null;   
  15. CallableStatement cmd = null;   
  16. try   
  17. {   
  18.     cn = DriverManager.getConnection(url);   
  19.     cmd = cn.divpareCall(sql);   
  20.     java.util.UUID Guid = java.util.UUID.randomUUID();   
  21.     String FilePath = application.getRealPath("") + "\test\logo.gif";   
  22.     java.io.FileInputStream f = new java.io.FileInputStream(FilePath);    
  23.     Date rightNow = Date.valueOf("2007-9-9");   
  24.     cmd.setString("UserName","mengxianhui");     
  25.     //注意修改这里,存储过程验证了UserName的唯一性。   
  26.     cmd.setString("Title","孟宪会");   
  27.     cmd.setString("Guid",Guid.toString());   
  28.     cmd.setString("BirthDate","2007-9-9");   
  29.     cmd.setDate("BirthDate",rightNow);   
  30.     cmd.setString("Description","【孟子E章】");   
  31.     cmd.setBinaryStream("Photo",f,f.available());   
  32.     cmd.setString("Other",null);   
  33.     cmd.registerOutParameter(1,java.sql.Types.INTEGER);   
  34.     cmd.registerOutParameter("UserID",java.sql.Types.INTEGER);   
  35.     cmd.execute();   
  36.     int returnValue = cmd.getInt(1);   
  37.     int UserID = cmd.getInt("UserID");   
  38.     if(returnValue == 1)   
  39.     {   
  40.         out.print("<li>添加成功!");   
  41.         out.print("<li>UserID = " + UserID);   
  42.         out.print("<li>returnValue = " + returnValue);   
  43.     }   
  44.     else   
  45.     {   
  46.         out.print("<li>添加失败!");   
  47.     }   
  48.     f.close();   
  49. }   
  50. catch(Exception ex)   
  51. {   
  52.     out.print(ex.getLocalizedMessage());   
  53. }   
  54. finally   
  55. {   
  56.     try   
  57.     {   
  58.         if(cmd != null)   
  59.         {   
  60.             cmd.close();   
  61.             cmd = null;   
  62.         }   
  63.         if(cn != null)   
  64.         {   
  65.             cn.close();   
  66.             cn = null;   
  67.         }   
  68.     }   
  69.     catch(Exception e)   
  70.     {   
  71.         e.printStackTrace();   
  72.     }   
  73. }   
  74. %>  
  75. </body>  
  76. </html>  
Google