<%@ page contentType="text/html; charset=gb2312"%> Java/JSP中调用SQL Server存储过程完整示例
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
Java/JSP中调用SQL Server存储过程完整示例
     发布者: 发布时间:2008-03-05
最近做了个Java的小项目(第一次写Java的项目),到网上搜索了半天,找到了一个比较好点的调用存储过程的例子,而且网上普遍采用的都是setXXX((int parameterIndex, XXX  x)的形式。这种形式感觉不是很直观,下面就发布一个完整的采用setXXX(String parameterName, XXX x)的编写方法。创建数据表,存储过程的代码都完整发布。


创建表

CREATE TABLE [BookUser] (

[UserID] [int] IDENTITY (1, 1) NOT NULL ,

[UserName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,

[Title] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,

[Guid] [uniqueidentifier] NOT NULL CONSTRAINT [DF_BookUser_Guid] DEFAULT (newid()),

[BirthDate] [datetime] NOT NULL ,

[Description] [ntext] COLLATE Chinese_PRC_CI_AS NOT NULL ,

[Photo] [image] NULL ,

[Other] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL CONSTRAINT [DF_BookUser_Other]
DEFAULT ('默认值'),

CONSTRAINT [PK_BookUser] PRIMARY KEY  CLUSTERED

(

[UserID]

)  ON [PRIMARY]

) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO


创建存储过程

CREATE PROCEDURE InsertUser

@UserName varchar(50),

@Title varchar(255),

@Guid  uniqueidentifier,

@BirthDate DateTime,

@Description ntext,

@Photo image,

@Other nvarchar(50),

@UserID int output

As

Set NOCOUNT ON

If Exists (select UserID from BookUser Where UserName = @UserName)

RETURN 0

ELSE

Begin

INSERT INTO BookUser (UserName,Title,Guid,BirthDate,Description,Photo,Other)

VALUES(@UserName,@Title,@Guid,@BirthDate,@Description,@Photo,@Other)

SET @UserID = @@IDENTITY

RETURN 1

End

GO


JSP代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>

<%@ page import = "java.sql.*"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML1.0 Transitional//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/data/aa937724.aspx下载

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

String url="jdbc:sqlserver://localhost:1433;databaseName=Book;user=sa;password=";

String sql = "{? = call InsertUser(?,?,?,?,?,?,?,?)}";

Connection cn = null;

CallableStatement cmd = null;

try

{

cn = DriverManager.getConnection(url);

cmd = cn.prepareCall(sql);

java.util.UUID Guid = java.util.UUID.randomUUID();

String FilePath = application.getRealPath("") + "\test\logo.gif";

java.io.FileInputStream f = new java.io.FileInputStream(FilePath);

Date rightNow = 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();

int returnValue = cmd.getInt(1);

int UserID = 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(Exception ex)

{

out.print(ex.getLocalizedMessage());

}

finally

{

try

{

if(cmd != null)

{

cmd.close();

cmd = null;

}

if(cn != null)

{

cn.close();

cn = null;

}

}

catch(Exception e)

{

e.printStackTrace();

}

}

%>

</body>

</html>


TAG:
jsp
JSP



(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
如何用Java实现基于XML的购物车
JavaBeans至XML的相互转换
关于 J2EE 层次设计架构实例的分析详解
Web Services:处理XML字符串中特殊字符
Sun公布SunOne2008大会
Sun中国培训部、北软、巨匠强强联合 开辟中国软件培训新局面
 
最近评论:
        
鍥炲
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号