Java中调用SQLServer存储过程示例
百度广告
最近做了个Java的小项目(第一次写Java的项目哦), 到网上搜索了半天,找到了一个比较好点的调用存储过程的例子,而且网上普遍采用的都是setXXX((int parameterIndex, XXX x)的形式。这种形式感觉不是很直观,下面就发布一个完整的采用setXXX(String parameterName, XXX x)的编写方法。创建数据表,存储过程的代码都完整发布。
|||
创建表:
CREATE TABLE [BookUser] ( [UserName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL , [Guid] [uniqueidentifier] NOT NULL CONSTRAINT [DF_BookUser_Guid] DEFAULT (newid()), [Description] [ntext] COLLATE Chinese_PRC_CI_AS NOT NULL , [Other] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL CONSTRAINT CONSTRAINT [PK_BookUser] PRIMARY KEY CLUSTERED [UserID] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] |
CREATE PROCEDURE InsertUser @Title varchar(255), @BirthDate DateTime, @Photo image, @UserID int output Set NOCOUNT ON RETURN 0 Begin SET @UserID = @@IDENTITY End |
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <head> <body> //注意:下面的连接方法采用最新的SQL Server的JDBC, Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); String sql = "{? = call InsertUser(?,?,?,?,?,?,?,?)}"; CallableStatement cmd = null; { cmd = cn.prepareCall(sql); String FilePath = application.getRealPath("") + ""test"logo.gif"; Date rightNow = Date.valueOf("2007-9-9"); cmd.setString("Title","孟宪会"); cmd.setString("BirthDate","2007-9-9"); cmd.setString("Description","【孟子E章】"); cmd.setString("Other",null); cmd.registerOutParameter("UserID",java.sql.Types.INTEGER); int returnValue = cmd.getInt(1); if(returnValue == 1) out.print("<li>添加成功!"); 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(); } { cn = null; } { } %> </html> |
编辑推荐:
下载Word文档
温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)
点击加载更多评论>>