程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> sql server與存儲過程在java中的調用

sql server與存儲過程在java中的調用

編輯:關於SqlServer
1 在查詢分析器中寫入如下代碼:
CREATE PROCEDURE InsertUser
@loginName varchar(50),
@realName varchar(50),
@passWord varchar(50),
@userId int output As Set NOCOUNT ON
If Exists (select userID from tsysuser Where loginName = @loginName)
RETURN 0
ELSE
Begin
INSERT INTO tsysuser (loginName,realName,password) VALUES(@loginName,@realName,@passWord)
SET @userID = @@IDENTITY
RETURN 1
End
GO 注意和Oracle中的不用於相似之處。由於本文寫得是java中對sqlserver的調用,故這裡不多說語法。 2 Java相關代碼,只是部分的。為的是說明問題。所以連接數據庫的代碼省去。
Connection conn = getConnection();//這個方法是數據庫調用的。就是普通的jdbc。故省去
              CallableStatement proc = null;
              String sql = "{?=call InsertUser(?,?,?,?)}";
              try {
                     proc = conn.prepareCall(sql);                      proc.registerOutParameter(1,Java.sql.Types.INTEGER);//定義返回值
                     proc.setString(2, "sa");
                     proc.setString(3, "sd");
                     proc.setString(4, "sd");                      proc.registerOutParameter(5,Java.sql.Types.INTEGER);//定義返回值
                     proc.execute();
                     System.out.println(proc.getString(1));//這裡根據存儲過程的返回值來進行相應的操作。判斷執行是否成功
              } catch (SQLException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();  
總結:sqlserver中的存儲過程和Oracle中的基本類似。但是由於數據庫底層的差異,語法會有相應的差別。對於一些Oracle中的方法,在sqlserver中並不能執行,甚至會報錯。至於Java中的調用,則基本上一致。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved