最近做了个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>
分享到:
相关推荐
在JavaServer Pages (JSP) 中调用SQL Server存储过程是一项常见的任务,特别是在构建Web应用程序时需要执行复杂的数据库操作。存储过程是预先编译的SQL语句集合,可以在数据库服务器上执行,提供性能优化和代码复用...
### JSP调用SQL Server的存储过程 在本篇文章中,我们将探讨如何通过JSP页面来调用SQL Server中的存储过程。此示例涉及到数据库表的创建、存储过程的定义以及JSP页面上的具体实现。 #### 数据库表的创建 首先,...
在Java应用程序中,你可以使用JDBC(Java Database Connectivity)来调用SQL Server的存储过程。以下是一个简单的示例: ```java import java.sql.*; public class CallSPExample { public static void main...
根据提供的文件信息,我们可以深入探讨如何在JSP中调用SQL Server存储过程,并结合具体的代码示例进行解析。 ### JSP 调用 SQL Server 存储过程 #### 一、存储过程创建与理解 首先,我们需要理解所提供的SQL ...
5. `Java中调用SQL+Server存储过程示例.txt`和`jsp如何调用sql server存储过程.txt`提供了Java代码示例,解释了如何在`jsp`中通过Java代码调用存储过程。 通过学习以上资源,开发者可以更好地理解并掌握`jsp`调用...
总结来说,这个示例演示了如何在JSP中使用Java的数据库API(JDBC)调用SQL SERVER的存储过程,从而实现对数据库的增删查改操作。这种做法提高了代码的可维护性和复用性,也使得数据库操作更加高效。在实际开发中,还...
在Java的Web开发中,有时我们需要在JSP页面中与数据库进行交互,Oracle数据库提供了存储过程来封装复杂的SQL操作。本示例展示了如何在JSP中调用Oracle存储过程。 首先,我们创建一个名为`p_test2`的Oracle存储过程...
在IT行业中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,而SQL Server 2000是Microsoft公司的一款关系型数据库管理系统。当我们需要在JSP应用中操作数据库时,就需要建立JSP与SQL Server 2000之间的连接...
在IT行业中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,而存储过程是数据库管理系统中的预编译SQL语句集合。本教程将详细阐述如何在JSP中调用存储过程,以及与之相关的Java知识,以帮助开发者更好地...
该压缩包文件“基于JAVA+jsp+sqlserver班级管理系统源码.zip”包含了开发一个班级管理系统所需的所有源代码和资源,主要使用Java编程语言、JSP(JavaServer Pages)技术和SQL Server数据库。这是一个典型的B/S...
这个项目基于SQL Server 2008数据库管理系统和Tomcat 7.0应用服务器,利用JavaBean作为业务逻辑层,JSP(JavaServer Pages)作为视图层进行展示。 **SQL Server 2008**: SQL Server 2008是微软公司推出的一款关系...
JSP(Java Server Pages)是一种基于Java的服务器端网页技术。它允许开发者在HTML文档中嵌入Java代码,从而实现动态网页的效果。在实际应用中,经常需要对查询结果进行分页显示,以提高用户体验并减轻服务器压力。...
总的来说,这个【Java+jsp+SQL server2000网上商城】项目是一个基础的电商系统示例,适合初学者了解Web开发的基本流程和主要技术,包括JSP编程、数据库操作以及MVC架构的应用。通过实践这个项目,学生可以深入理解...
在Java编程中,为了实现与SQL Server 2008数据库的交互,我们需要引入特定的JDBC驱动程序,也就是Java Database Connectivity(Java数据库连接)驱动。这个驱动允许Java应用程序通过API来执行SQL语句,从而读取、...
【电子商务】JSP购物车(SQLserver版)_jspshop.zip是一个包含Java JSP技术实现的电子商务购物车系统的源码示例,适用于学生进行毕业设计学习。这个项目以SQL Server数据库为后台存储,展示了如何在Web开发中整合...
JSP(JavaServer Pages)是Java平台上的动态网页技术,它允许开发者在HTML页面中嵌入Java代码,从而实现服务器端的业务逻辑处理。而SQL Server 2000是微软公司的一款关系型数据库管理系统,提供数据存储、查询、分析...
在Java Web开发中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,它可以与数据库进行交互以实现数据的增删改查。本教程将详细讲解如何使用JSP连接SQL Server 2005数据库,这是一个基础且重要的知识点,...
在这个场景中,我们关注的是如何使用JSP(JavaServer Pages)与SQL Server数据库进行交互,实现数据的增删改查(CRUD)操作。JSP是一种动态网页技术,而SQL Server是微软公司提供的一个功能强大的关系型数据库管理...
在介绍如何在Java Server Pages(JSP)中使用Java Database Connectivity(JDBC)来访问Microsoft SQL Server 2008数据库时,需要掌握以下几个知识点: 1. JDBC驱动的概念和作用:JDBC驱动是Java语言编写的程序,它...