JSP调用SQL Server存储过程的实例:
创建表:
创建表 [BookUser] (
[用户ID] [int] IDENTITY (1, 1) NOT NULL ,
[用户名] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[标题] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Guid] [uniqueidentifier] NOT NULL 约束 [DF_BookUser_Guid] DEFAULT (newid()),
[出生日期] [日期时间] NOT NULL ,
[描述] [ntext] COLLATE Chinese_PRC_CI_AS NOT NULL ,
[照片] [图像] NULL ,
[其他] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL
CONSTRAINT [DF_BookUser_Other] DEFAULT ('默认值'),
约束 [PK_BookUser] 主键聚集
(
[用户身份]
) 关于 [主要]
) 在 [主] TEXTIMAGE_ON [主]
去
创建存储过程:
创建过程插入用户
@用户名 varchar(50),
@标题varchar(255),
@Guid唯一标识符,
@出生日期日期时间,
@描述ntext,
@照片图像,
@其他nvarchar(50),
@UserID int 输出
设置
NOCOUNT ON
如果存在(从 BookUser 中选择 UserID,其中 UserName = @UserName)
返回 0
别的
开始
INSERT INTO BookUser(用户名、标题、指南、出生日期、描述、照片、其他)
值(@用户名、@标题、@Guid、@出生日期、@描述、@照片、@其他)
设置@UserID = @@IDENTITY
返回1
结尾
去
JSP代码:
<%@ 页面语言=“java” contentType=“text/html; 字符集=UTF-8” pageEncoding=“UTF-8”%>
<%@页面导入=“java.sql.*”%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 过渡//EN"
“ http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ” >
<html xmlns=" http://www.w3.org/1999/xhtml ">
<头>
</头>
<正文>
<%
//注意:下面的连接方法采用SQL Server的JDBC,先下载sqlserver驱动。
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url="jdbc:sqlserver://localhost:1433;databaseName=Book;user=sa;password=";
String sql = "{? = 调用InsertUser(?,?,?,?,?,?,?,?)}";
连接 cn = null;
CallableStatement cmd = null;
尝试
{
cn = DriverManager.getConnection(url);
cmd = cn.divpareCall(sql);
java.util.UUID Guid = java.util.UUID.randomUUID();
String FilePath = application.getRealPath("") + "testlogo.gif";
java.io.FileInputStream f = new java.io.FileInputStream(FilePath);
Date rightNow = Date.valueOf("2007-9-9");
cmd.setString("用户名","孟宪惠");
//注意修改这里,过程存储验证了UserName的唯一性。
cmd.setString("标题","孟宪会");
cmd.setString("Guid",Guid.toString());
cmd.setString("出生日期","2007-9-9");
cmd.setDate("出生日期",rightNow);
cmd.setString("描述","【孟子E章】");
cmd.setBinaryStream("照片",f,f.available());
cmd.setString("其他",null);
cmd.registerOutParameter(1,java.sql.Types.INTEGER);
cmd.registerOutParameter("用户ID",java.sql.Types.INTEGER);
cmd.execute();
int returnValue = cmd.getInt(1);
int UserID = cmd.getInt("UserID");
if(返回值 == 1)
{
out.print("<li>添加成功!");
out.print("<li>用户ID = " + 用户ID);
out.print("<li>returnValue = " + returnValue);
}
别的
{
out.print("<li>添加失败!");
}
f.close();
}
捕获(异常前)
{
out.print(例如.getLocalizedMessage());
}
最后
{
尝试
{
if(cmd!= null)
{
cmd.close();
cmd=空;
}
if(cn != null)
{
cn.close();
cn = 空;
}
}
捕获(异常 e)
{
e.printStackTrace();
}
}
%>
</正文>
</html>