`
xsuo
  • 浏览: 123464 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Java/JSP中调用SQL Server存储过程完整示例

阅读更多

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

创建表:

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_ASNULLCONSTRAINT[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,
//请到http://msdn2.microsoft.com/zh-cn/data/aa937724.aspx下载
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.prepareCall(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如何调用sqlserver存储过程

    在JavaServer Pages (JSP) 中调用SQL Server存储过程是一项常见的任务,特别是在构建Web应用程序时需要执行复杂的数据库操作。存储过程是预先编译的SQL语句集合,可以在数据库服务器上执行,提供性能优化和代码复用...

    JSP调用SQL Server的存储过程

    ### JSP调用SQL Server的存储过程 在本篇文章中,我们将探讨如何通过JSP页面来调用SQL Server中的存储过程。此示例涉及到数据库表的创建、存储过程的定义以及JSP页面上的具体实现。 #### 数据库表的创建 首先,...

    sql server调用存储过程

    在Java应用程序中,你可以使用JDBC(Java Database Connectivity)来调用SQL Server的存储过程。以下是一个简单的示例: ```java import java.sql.*; public class CallSPExample { public static void main...

    jsp sql server存储过程调用的例子

    根据提供的文件信息,我们可以深入探讨如何在JSP中调用SQL Server存储过程,并结合具体的代码示例进行解析。 ### JSP 调用 SQL Server 存储过程 #### 一、存储过程创建与理解 首先,我们需要理解所提供的SQL ...

    jsp调用存储过程大集合

    5. `Java中调用SQL+Server存储过程示例.txt`和`jsp如何调用sql server存储过程.txt`提供了Java代码示例,解释了如何在`jsp`中通过Java代码调用存储过程。 通过学习以上资源,开发者可以更好地理解并掌握`jsp`调用...

    使用JSP来操作SQL SERVER中存储过程.doc

    总结来说,这个示例演示了如何在JSP中使用Java的数据库API(JDBC)调用SQL SERVER的存储过程,从而实现对数据库的增删查改操作。这种做法提高了代码的可维护性和复用性,也使得数据库操作更加高效。在实际开发中,还...

    Jsp中调用Oracle存储过程的小例子

    在Java的Web开发中,有时我们需要在JSP页面中与数据库进行交互,Oracle数据库提供了存储过程来封装复杂的SQL操作。本示例展示了如何在JSP中调用Oracle存储过程。 首先,我们创建一个名为`p_test2`的Oracle存储过程...

    JSP连接SQL Server2000数据库的方法

    在IT行业中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,而SQL Server 2000是Microsoft公司的一款关系型数据库管理系统。当我们需要在JSP应用中操作数据库时,就需要建立JSP与SQL Server 2000之间的连接...

    JSP调用存储过程程序

    在IT行业中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,而存储过程是数据库管理系统中的预编译SQL语句集合。本教程将详细阐述如何在JSP中调用存储过程,以及与之相关的Java知识,以帮助开发者更好地...

    基于JAVA+jsp+sqlserver班级管理系统源码.zip

    该压缩包文件“基于JAVA+jsp+sqlserver班级管理系统源码.zip”包含了开发一个班级管理系统所需的所有源代码和资源,主要使用Java编程语言、JSP(JavaServer Pages)技术和SQL Server数据库。这是一个典型的B/S...

    sql server+javaBean jsp留言板

    这个项目基于SQL Server 2008数据库管理系统和Tomcat 7.0应用服务器,利用JavaBean作为业务逻辑层,JSP(JavaServer Pages)作为视图层进行展示。 **SQL Server 2008**: SQL Server 2008是微软公司推出的一款关系...

    jsp分页技术 jsp servlet sqlserver

    JSP(Java Server Pages)是一种基于Java的服务器端网页技术。它允许开发者在HTML文档中嵌入Java代码,从而实现动态网页的效果。在实际应用中,经常需要对查询结果进行分页显示,以提高用户体验并减轻服务器压力。...

    Java+jsp+SQL server2000 网上商城

    总的来说,这个【Java+jsp+SQL server2000网上商城】项目是一个基础的电商系统示例,适合初学者了解Web开发的基本流程和主要技术,包括JSP编程、数据库操作以及MVC架构的应用。通过实践这个项目,学生可以深入理解...

    java 连接sqlserver2008 所用的jar包

    在Java编程中,为了实现与SQL Server 2008数据库的交互,我们需要引入特定的JDBC驱动程序,也就是Java Database Connectivity(Java数据库连接)驱动。这个驱动允许Java应用程序通过API来执行SQL语句,从而读取、...

    [电子商务]JSP购物车(SQLserver版)_jspshop.zip

    【电子商务】JSP购物车(SQLserver版)_jspshop.zip是一个包含Java JSP技术实现的电子商务购物车系统的源码示例,适用于学生进行毕业设计学习。这个项目以SQL Server数据库为后台存储,展示了如何在Web开发中整合...

    jsp+sql server 2000 系统 先看看再说吧,保证能运行

    JSP(JavaServer Pages)是Java平台上的动态网页技术,它允许开发者在HTML页面中嵌入Java代码,从而实现服务器端的业务逻辑处理。而SQL Server 2000是微软公司的一款关系型数据库管理系统,提供数据存储、查询、分析...

    jsp连接SQL Server2005一个简单的例子附带驱动程序

    在Java Web开发中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,它可以与数据库进行交互以实现数据的增删改查。本教程将详细讲解如何使用JSP连接SQL Server 2005数据库,这是一个基础且重要的知识点,...

    sql server+JSP对数据库进行操作

    在这个场景中,我们关注的是如何使用JSP(JavaServer Pages)与SQL Server数据库进行交互,实现数据的增删改查(CRUD)操作。JSP是一种动态网页技术,而SQL Server是微软公司提供的一个功能强大的关系型数据库管理...

    JSP中使用JDBC访问SQL Server 2008数据库示例

    在介绍如何在Java Server Pages(JSP)中使用Java Database Connectivity(JDBC)来访问Microsoft SQL Server 2008数据库时,需要掌握以下几个知识点: 1. JDBC驱动的概念和作用:JDBC驱动是Java语言编写的程序,它...

Global site tag (gtag.js) - Google Analytics