MySQLの手順では、複数のデータセットを返します

オリジナルリンク: http://www.cnblogs.com/mjorcen/p/3915125.html

複数のデータセットの文言を返します:
最初の
 

DROP  PROCEDURE  IFは EXISTS `p_query_user`を。
区切り文字は//   
    CREATE  PROCEDUREの p_query_user(p_inout_user_idの   INTが始まる
    宣言 CのVARCHAR100デフォルト ' 0 ' ;
         SELECT  *  FROM T_SD_USER USER_ID = p_inout_user_id。
         SET p_inout_user_id = 2222 ;
最後// 
 DELIMITER。設定@uId = 3000   
   ; 
CALLのp_query_user(@uId )。
SELECT  @uId ;

 

第2

mysqlの>区切り文字// 
mysqlの> ドロップ 手順 場合は、 存在する PROCを
mysqlの> 作成 手続き procが()
 開始
を作成 、一時 テーブル TMP1 のようなトンを。
挿入  TMP1 選択 *  からT;
作成し 、一時 テーブル TMP2 のようなトンを。
挿入  TMP2 選択 *  からT;
エンド;
//
mysqlの> の区切り文字。
MySQLの> を選択 *  からTMP1。
MySQLの> を選択 *  から TMP2。

注:一時テーブルの使用は、セッションレベルで利用されている、ストアドプロシージャは再び一時テーブルをドロップする必要があると呼ばれます。

 

コールを休止 

@Test
     公共 ボイドTEST0(){
         しようと{ 

            文字列procedureSqlは = "CALLのp_query_user(:USERID)" ; 
            SQLQueryのSQLQuery = t.getSession()createSQLQuery(procedureSql)。
                    .addEntity(TSdUser。クラス)。
            オブジェクトのユーザーID = 3000 
            sqlQuery.setParameter( "はuserId" 、USERID)。
            リスト <TSdUser>結果= sqlQuery.list()。
            (TSdUser tSdUser:結果){ 
                のSystem.out.println(tSdUser)。
            }
            System.out.println(USERID)。
        } キャッチ(例外e){ 
            e.printStackTrace(); 
        } 
    }

結果は以下の通りであります:

休止状態:CALLのp_query_user(? 
TSdUser [userSysMlb = 100.0、userUseredMlb = 633137.0、userDoDiscoverCount = 0、userDoCommonsSayCount = 0、CREATETIME = 2014年5月8日12:20:35.0、2014年7月17日= 12 lastActivateSystemMsgTime:10:00.0 、lastActivateSusCommentMsgTime = 2014年5月8日12:20:35.0、lastActivateNegativeMsgTime = 10 2014年6月17日:27:37.0、lastActivatePraiseMsgTime = 2014年5月8日12:20:35.0、lastActiveTime = 2014年8月11日午前18時45分:52.0、priMsgTime = 2014年8月9日14:30:27.0、lockTime = ヌル、userMark = ヌル、userSubMark = ヌル、userRemark = ヌル、ユーザー情報= NULL 、userLoginIp = 127.0.0.1、userLogginPhoneCode = 13724770797、userRegisterInfo = ヌル、 userRealName = nullを、userRegisterPhoneCode = 13724770797、userRegistrationCity = ヌル、userPhoneCity =湛江、userDeviceType =アンドロイド、userLoginQqId = 1、userLoginWeiXinId = ヌル、userLoginSinaBlogId = ヌル、userWeiXinOpenId = 111、cteateType = 1、restaurantWeiXinOpenId = 222、weiXinSubscribeTime = 2014年5月17日13: 29:28.0、weiXinSubscribeStatus = SUBSCRIBE、weiXinUnSubscribeTime = NULL 、= 3000にuserIdユーザ名= MJorcen、userTotalMlb = 1.1111111E7、userDoAttentionCount = 0、userReAttentionCount = 0、userDoPraiseCount = 0、userRePraiseCount = 11、userDoNegativeCount = 0、userReNegativeCount = 6、userDoShowDetailCount = 38、userDoGetVoucherCount = 5、userDoUsedVoucherCount = 2、userPhone = 13724770797、userGender = G、userGrade = 0、userHeader = NULL ]

または:

    @Test
     公共 無効TEST1(){
         しようと{ 

            文字列procedureSql "CALLのp_query_user(?)" =を
            接続の接続 = 。t.getSession()接続(); 
            オブジェクトのユーザーID = 3000 
            java.sql.CallableStatementのCS = 接続
                    .prepareCall(procedureSql)。
            cs.setInt( 1、3000 )。
            
            cs.registerOutParameter( "p_inout_user_id" 、Types.INTEGER)。
            cs.execute(); 
            INT patams1 = cs.getInt(1 )。
            ResultSetたresultSet = cs.getResultSet()。
            一方、(resultSet.next()){ 
                System.out.printlnは(resultSet.getInt( "USER_ID" ))。
            } 
            のSystem.out.println(patams1)。
        } キャッチ(例外e){ 
            e.printStackTrace(); 
        } 
    }

 

 インターネットの例。

パブリック文字列callFirstProcedures(最終 長い qyid、最終 INT pdys){ 
    文字列procedureSql = "{コールget_qyaqdcpdjb}(、???)" 
    オブジェクトPJ = jdbcTemplate.execute(procedureSql、
             新しいCallableStatementCallback(){
                 公共オブジェクトdoInCallableStatement(CallableStatementのCS)は
                         スローのSQLException、DataAccessException { 
                    cs.setLong( 1 ;、qyid)
                    cs.setInt( 2 、pdys);
                     // 你需要注册一个を输出参数
                    cs.registerOutParameter(3 、のTypes.VARCHAR)。
                    cs.execute(); 
                    戻り cs.getString(3 )。
                } 
            })。
    返すHtmsUtils.formatObject(PJ)を、
}

 

ます。https://www.cnblogs.com/mjorcen/p/3915125.htmlで再現

おすすめ

転載: blog.csdn.net/weixin_30252709/article/details/94784691