您当前的位置: 首页 > 网站编程 > JSP教程 > JSP调用中SQL Server的存储过程

JSP调用中SQL Server的存储过程

作者:guanchaofeng 来源:不详 发布时间: 2009-05-22 20:57 点击:
JSP调用SQLServer存储过程的实例: 创建表: CREATETABLE[BookUser]( [UserID][int]IDENTITY(1,1)NOTNULL, [UserName][varchar](50)COLLATEChinese_PRC_CI_ASNOTNULL, [Title][nvarchar](50)COLLATEChinese_PRC_CI_ASNOTNULL, [Guid][uniqueidentifier]NOTNU

JSP调用中SQL Server的存储过程

  JSP调用SQLServer存储过程的实例:  
  
  创建表:  
  
  CREATETABLE[BookUser](
  [UserID][int]IDENTITY(1,1)NOTNULL,
  [UserName][varchar](50)COLLATEChinese_PRC_CI_ASNOTNULL,
  [Title][nvarchar](50)COLLATEChinese_PRC_CI_ASNOTNULL,
  [Guid][uniqueidentifier]NOTNULLCONSTRAINT[DF_BookUser_Guid]DEFAULT(newid()),
  [BirthDate][datetime]NOTNULL,
  [Description][ntext]COLLATEChinese_PRC_CI_ASNOTNULL,
  [Photo][image]NULL,
  [Other][varchar](50)COLLATEChinese_PRC_CI_ASNULL
  CONSTRAINT[DF_BookUser_Other]DEFAULT('默认值'),
  CONSTRAINT[PK_BookUser]PRIMARYKEYCLUSTERED
  (
  [UserID]
  )ON[PRIMARY]
  )ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]
  GO    
  
  创建存储过程:  
  
  CREATEPROCEDUREInsertUser
  @UserNamevarchar(50),
  @Titlevarchar(255),
  @Guiduniqueidentifier,
  @BirthDateDateTime,
  @Descriptionntext,
  @Photoimage,
  @Othernvarchar(50),
  @UserIDintoutput
  As
  
  SetNOCOUNTON
  IfExists(selectUserIDfromBookUserWhereUserName=@UserName)
  RETURN0
  ELSE
  Begin
  INSERTINTOBookUser(UserName,Title,Guid,BirthDate,Description,Photo,Other)
  VALUES(@UserName,@Title,@Guid,@BirthDate,@Description,@Photo,@Other)
  SET@UserID=@@IDENTITY
  RETURN1
  End
  GO
  
  JSP代码:
  
  <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>
  <%@pageimport="java.sql.*"%>
  <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <htmlxmlns="http://www.w3.org/1999/xhtml">
  <head>
  </head>
  <body>
  <%
  //注意:下面的连接方法采用SQLServer的JDBC,先下载sqlserver驱动。
  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  Stringurl="jdbc:sqlserver://localhost:1433;databaseName=Book;user=sa;password=";
  Stringsql="{?=callInsertUser(?,?,?,?,?,?,?,?)}";
  Connectioncn=null;
  CallableStatementcmd=null;
  try
  {
  cn=DriverManager.getConnection(url);
  cmd=cn.divpareCall(sql);
  java.util.UUIDGuid=java.util.UUID.randomUUID();
  StringFilePath=application.getRealPath("")+"\test\logo.gif";
  java.io.FileInputStreamf=newjava.io.FileInputStream(FilePath);
  DaterightNow=Date.valueOf("2007-9-9");
  cmd.setString("UserName","mengxianhui");
  //注意修改这里,存储过程验证了UserName的唯一性。
  cmd.setString("Title","孟宪会");
  cmd.setString("Guid",Guid.toString());
  cmd.setString("BirthDate","2007-9-9");
  cmd.setDate("BirthDate",rightNow);
  cmd.setString("Description","【孟子E章】");
  cmd.setBinaryStream("Photo",f,f.available());
  cmd.setString("Other",null);
  cmd.registerOutParameter(1,java.sql.Types.INTEGER);
  cmd.registerOutParameter("UserID",java.sql.Types.INTEGER);
  cmd.execute();
  intreturnValue=cmd.getInt(1);
  intUserID=cmd.getInt("UserID");
  if(returnValue==1)
  {
  out.print("<li>添加成功!");
  out.print("<li>UserID="+UserID);
  out.print("<li>returnValue="+returnValue);
  }
  else
  {
  out.print("<li>添加失败!");
  }
  f.close();
  }
  catch(Exceptionex)
  {
  out.print(ex.getLocalizedMessage());
  }
  finally
  {
  try
  {
  if(cmd!=null)
  {
  cmd.close();
  cmd=null;
  }
  if(cn!=null)
  {
  cn.close();
  cn=null;
  }
  }
  catch(Exceptione)
  {
  e.printStackTrace();
  }
  }
  %>
  </body>
  </html>  

分享到:
本文"JSP调用中SQL Server的存储过程"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4