データテーブルを作成し、ストアドプロシージャのコードを限定発売しています。
テーブルを作成します。
CREATE TABLEを[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 CONSTRAINT [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( '默认值')、
CONSTRAINT [PK_BookUser] PRIMARY KEY CLUSTERED
(
[ユーザーID]
)ON [PRIMARY]
)ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
[ユーザー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 CONSTRAINT [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( '默认值')、
CONSTRAINT [PK_BookUser] PRIMARY KEY CLUSTERED
(
[ユーザーID]
)ON [PRIMARY]
)ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ストアドプロシージャを作成します。
PROCEDURE InsertUser CREATE
@UserName VARCHAR(50)、
@Title VARCHAR(255)、
@Guid UNIQUEIDENTIFIER、
@BirthDate日時、
@description NTEXT、
@Photo画像、
@Other NVARCHAR(50)、
@UserID INT出力
として
セットNOCOUNT ON
場合が存在します(ユーザー名= @UserName BookUserからユーザーIDを選択)
RETURNは0
ELSE
開始
INSERT INTO BookUser(ユーザー名、タイトル、GUID、誕生日、説明、写真、その他)VALUES(@ユーザー名、@タイトル、@ GUID、@誕生日、@説明、その他)@写真、@
SET @UserID = @@ IDENTITY
RETURN 1
エンド
GO
@UserName VARCHAR(50)、
@Title VARCHAR(255)、
@Guid UNIQUEIDENTIFIER、
@BirthDate日時、
@description NTEXT、
@Photo画像、
@Other NVARCHAR(50)、
@UserID INT出力
として
セットNOCOUNT ON
場合が存在します(ユーザー名= @UserName BookUserからユーザーIDを選択)
RETURNは0
ELSE
開始
INSERT INTO BookUser(ユーザー名、タイトル、GUID、誕生日、説明、写真、その他)VALUES(@ユーザー名、@タイトル、@ GUID、@誕生日、@説明、その他)@写真、@
SET @UserID = @@ IDENTITY
RETURN 1
エンド
GO
JSPコード:
<%@ページ言語= "javaの" contentTypeの= "text / htmlの;のcharset = 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 ">
<HEAD>
</ HEAD>
<BODY>
<%
//注意:下面的连接方法采用最新的SQL ServerのJDBC的、
//请到http://msdn2.microsoft。 COM / ZH-CN /データ/ aa937724.aspx下载
にClass.forName( "com.microsoft.sqlserver.jdbc.SQLServerDriver")。
文字列のURL = "はjdbc:のSQLServer:// localhostを:1433; databaseNameの=書籍;ユーザー=のsa;パスワード=";
文字列のSQL = "{?(????????、、、、、、、)=呼び出しInsertUser}"。
接続CN = NULL;
CallableStatementのCMD = NULL;
試す
{
CN =したDriverManager.getConnection(URL);
CMD = cn.prepareCall(SQL)。
java.util.UUIDのGUID = java.util.UUID.randomUUID()。
ストリングファイルパス= application.getRealPath( "")+ "/test/logo.gif"。
java.io.FileInputStreamのF =新しいjava.io.FileInputStream(ファイルパス)。
日付のRightNow = Date.valueOf( "2007年9月9日");
( "ユーザー名"、 "mengxianhui")をcmd.setString。//注意修改这里、存储过程验证了ユーザー名的唯一性。
cmd.setString( "タイトル"、 "孟宪会");
cmd.setString( "のGuid"、Guid.toString());
( "誕生日"、 "2007年9月9日")cmd.setString。
cmd.setDate(」
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型ユーザーID = cmd.getInt( "ユーザーID");
もし(のreturnValue == 1)
{
out.print( "<LI>添加成功!");
out.print( "<LI>ユーザーID =" +ユーザID);
out.print( "<LI>のreturnValue =" +のreturnValue)。
}
他
{
out.print( "<LI>添加失败!");
}
f.close()を。
}
キャッチ(例外例)
{
out.print(ex.getLocalizedMessage())。
}
最後に
{
試み
{
するif(!CMD = NULL)
{
cmd.close();
CMD = NULL;
}
IF(!CN = NULL)
{
cn.close()。
CN = NULL;
}
}
キャッチ(例外e)
{
e.printStackTrace();
}
}
%>
</ body>
</ HTML>
<%@ページのインポート= "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 ">
<HEAD>
</ HEAD>
<BODY>
<%
//注意:下面的连接方法采用最新的SQL ServerのJDBC的、
//请到http://msdn2.microsoft。 COM / ZH-CN /データ/ aa937724.aspx下载
にClass.forName( "com.microsoft.sqlserver.jdbc.SQLServerDriver")。
文字列のURL = "はjdbc:のSQLServer:// localhostを:1433; databaseNameの=書籍;ユーザー=のsa;パスワード=";
文字列のSQL = "{?(????????、、、、、、、)=呼び出しInsertUser}"。
接続CN = NULL;
CallableStatementのCMD = NULL;
試す
{
CN =したDriverManager.getConnection(URL);
CMD = cn.prepareCall(SQL)。
java.util.UUIDのGUID = java.util.UUID.randomUUID()。
ストリングファイルパス= application.getRealPath( "")+ "/test/logo.gif"。
java.io.FileInputStreamのF =新しいjava.io.FileInputStream(ファイルパス)。
日付のRightNow = Date.valueOf( "2007年9月9日");
( "ユーザー名"、 "mengxianhui")をcmd.setString。//注意修改这里、存储过程验证了ユーザー名的唯一性。
cmd.setString( "タイトル"、 "孟宪会");
cmd.setString( "のGuid"、Guid.toString());
( "誕生日"、 "2007年9月9日")cmd.setString。
cmd.setDate(」
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型ユーザーID = cmd.getInt( "ユーザーID");
もし(のreturnValue == 1)
{
out.print( "<LI>添加成功!");
out.print( "<LI>ユーザーID =" +ユーザID);
out.print( "<LI>のreturnValue =" +のreturnValue)。
}
他
{
out.print( "<LI>添加失败!");
}
f.close()を。
}
キャッチ(例外例)
{
out.print(ex.getLocalizedMessage())。
}
最後に
{
試み
{
するif(!CMD = NULL)
{
cmd.close();
CMD = NULL;
}
IF(!CN = NULL)
{
cn.close()。
CN = NULL;
}
}
キャッチ(例外e)
{
e.printStackTrace();
}
}
%>
</ body>
</ HTML>