国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java調用SQLServer存儲過程

2019-11-14 15:29:09
字體:
來源:轉載
供稿:網友

1、調用普通存儲過程
(1)創建存儲過程
CREATE PRocedure [dbo].[GetContactListByName]  /*根據聯系人姓名獲取聯系人信息*/
@Name nvarchar(50)
As
begin
    select Contact.Id,Contact.Name,Phone,Email,QQ,GroupName from Contact,ContactGroup
 where Contact.GroupId=ContactGroup.Id and Name like '%'+@Name+'%'  order by Contact.Id desc
end
(2)java代碼
final String DRIVER_CLASS = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
final String DATABASE_URL = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=AddressList";
final String DATABASE_USRE = "sa";
final String DATABASE_PASSWord = "1234";
try {
    Class.forName(DRIVER_CLASS);
    Connection connection=DriverManager.getConnection(DATABASE_URL,DATABASE_USRE,DATABASE_PASSWORD);
    CallableStatement callableStatement=connection.prepareCall("{call GetContactListByName(?)}");
    callableStatement.setString(1, name);
    ResultSet resultSet=callableStatement.executeQuery();
    while(resultSet.next()){
        int id=resultSet.getInt(1);
        String string=resultSet.getString(2);
        System.out.println(id+","+string);
    }
} catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace();
}
注意:如果存儲過程無參數,則不需要寫括號,如
CallableStatement callableStatement=connection.prepareCall("{call GetAllContactGroup}");
        
2、調用包含返回值及輸出參數的存儲過程
(1)創建存儲過程
USE [AddressList]
GO
CREATE PROCEDURE [dbo].[GetGroupById]  /*根據分組編號獲取分組信息*/
 @GroupName nvarchar(50) OUTPUT,   /*輸出參數*/
 @Memo nvarchar(200) OUTPUT,      /*輸出參數*/
 @id int
AS
BEGIN
 select @GroupName=GroupName,@Memo=Memo from ContactGroup where id=@id
 if @@Error<>0
  RETURN -1   /*返回值*/
 else
  RETURN 0   /*返回值*/
END
(2)Java代碼
    CallableStatement callableStatement=connection.prepareCall("{?=call GetGroupById(?,?,?)}");
    //返回值
    callableStatement.registerOutParameter(1, Types.INTEGER);
    //輸出參數
    callableStatement.registerOutParameter(2, Types.VARCHAR);
    //輸出參數
    callableStatement.registerOutParameter(3, Types.VARCHAR);
    //輸入參數
    callableStatement.setInt(4, 2);
    callableStatement.execute();
    //獲得返回值
    int returnValue=callableStatement.getInt(1);
    //獲得輸出參數
    String groupName=callableStatement.getString(2);
    //獲得輸出參數
    String memo=callableStatement.getString(3);
    System.out.println(returnValue);
    System.out.println(groupName);
    System.out.println(memo);
} catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace();
}
3、調用包含輸入輸出參數的存儲過程。
(1)創建存儲過程
USE [AddressList]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[test]
 @GroupName nvarchar(50) output
AS
BEGIN
 select @GroupName=GroupName from ContactGroup where GroupName like '%'+@GroupName+'%'
END
(2)Java代碼
CallableStatement callableStatement=connection.prepareCall("{call test(?)}");
callableStatement.setString(1, name);
callableStatement.registerOutParameter(1, Types.VARCHAR);
callableStatement.execute();
String string=callableStatement.getString(1);
System.out.println(string);


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宕昌县| 太白县| 大洼县| 会同县| 郎溪县| 永顺县| 江孜县| 山东| 韶山市| 常德市| 明溪县| 永善县| 岚皋县| 永嘉县| 银川市| 兴隆县| 申扎县| 库伦旗| 新晃| 和龙市| 富平县| 西青区| 曲松县| 越西县| 五家渠市| 荆州市| 锡林郭勒盟| 杭锦旗| 浮梁县| 青海省| 潮州市| 桃园县| 大英县| 措勤县| 乌恰县| 汤原县| 安徽省| 梅州市| 云梦县| 志丹县| 常山县|