JSP呼叫SQL Server預存程序的實例:
建立表:
建立表 [BookUser] (
[用戶ID] [int] IDENTITY (1, 1) NOT NULL ,
[使用者名稱] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[標題] [nvarchar] (50) COLLATE 中文_PRC_CI_AS NOT NULL ,
[Guid] [uniqueidentifier] NOT NULL 限制 [DF_BookUser_Guid] DEFAULT (newid()),
[出生日期] [日期時間] NOT NULL ,
[描述] [ntext] COLLATE 中文_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>