日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Spring Data JPA怎么調用存儲

瀏覽:29日期:2023-11-30 10:09:03

Spring Data JPA怎么調用存儲?JPA連接到數據庫,調用存儲過程,這樣的需求很常見。本文就針對這一點,講述如何使用spring Data JPA調用存儲過程的方法。

Spring Data JPA怎么調用存儲

1、存儲過程

假設存儲過程如下:

CREATE OR REPLACE PACKAGE test_pkg AS

PROCEDURE in_only_test (inParam1 IN VARCHAR2);

PROCEDURE in_and_out_test (inParam1 IN VARCHAR2, outParam1 OUT VARCHAR2);

END test_pkg;

/

CREATE OR REPLACE PACKAGE BODY test_pkg AS

PROCEDURE in_only_test(inParam1 IN VARCHAR2) AS

BEGIN

DBMS_OUTPUT.PUT_LINE('in_only_test');

END in_only_test;

PROCEDURE in_and_out_test(inParam1 IN VARCHAR2, outParam1 OUT VARCHAR2) AS

BEGIN

outParam1 := 'Woohoo Im an outparam, and this is my inparam ' || inParam1;

END in_and_out_test;

END test_pkg;

這里有兩個存儲過程:

1)in_only_test

它需要一個輸入參數inParam1,但不返回值

2)in_and_out_test

它需要一個輸入參數inParam1,且返回值outParam1

2、@NamedStoredProcedureQueries

我們可以使用@NamedStoredProcedureQueries注釋來調用存儲過程。

@Entity

@Table(name = "MYTABLE")

@NamedStoredProcedureQueries({

@NamedStoredProcedureQuery(name = "in_only_test", procedureName = "test_pkg.in_only_test", parameters = {

@StoredProcedureParameter(mode = ParameterMode.IN, name = "inParam1", type = String.class) }),

@NamedStoredProcedureQuery(name = "in_and_out_test", procedureName = "test_pkg.in_and_out_test", parameters = {

@StoredProcedureParameter(mode = ParameterMode.IN, name = "inParam1", type = String.class),

@StoredProcedureParameter(mode = ParameterMode.OUT, name = "outParam1", type = String.class) }) })

public class MyTable implements Serializable {

}

關鍵要點:

存儲過程使用了注釋@NamedStoredProcedureQuery,并綁定到一個JPA表。

procedureName是存儲過程的名字

name是JPA中的存儲過程的名字

使用注釋@StoredProcedureParameter來定義存儲過程使用的IN/OUT參數

3、創建Spring Data JPA數據庫

下面我們來創建Spring Data JPA數據庫:

public interface MyTableRepository extends CrudRepository

@Procedure(name = "in_only_test")

void inOnlyTest(@Param("inParam1") String inParam1);

@Procedure(name = "in_and_out_test")

String inAndOutTest(@Param("inParam1") String inParam1);

}

關鍵要點:

@Procedure的name參數必須匹配@NamedStoredProcedureQuery的name

@Param必須匹配@StoredProcedureParameter注釋的name參數

返回類型必須匹配:in_only_test存儲過程返回是void,in_and_out_test存儲過程必須返回String

4、調用

我們可以這樣調用存儲過程:

// 向存儲過程傳遞參數并返回值

String inParam = "Hi Im an inputParam";

String outParam = myTableRepository.inAndOutTest(inParam);

Assert.assertEquals(outParam, "Woohoo Im an outparam, and this is my inparam Hi Im an inputParam");

// 向存儲過程傳遞參數不返回值

myTableRepository.inOnlyTest(inParam);

5、其它技巧

如果上面的代碼不工作,可以這么解決。定義自定義的Repository來調用存儲過程昨晚本地查詢。

定義自定義的Repository:

public interface MyTableRepositoryCustom {

void inOnlyTest(String inParam1);

}

然后要確保主Repository類繼承了這個接口。

復制代碼 代碼如下:

public interface MyTableRepository extends CrudRepository

6、創建Repository實現類

接著該創建Repository實現類了:

public class MyTableRepositoryImpl implements MyTableRepositoryCustom {

@PersistenceContext

private EntityManager em;

@Override

public void inOnlyTest(String inParam1) {

this.em.createNativeQuery("BEGIN in_only_test(:inParam1); END;").setParameter("inParam1", inParam1)

.executeUpdate();

}

}

可以以常規的方式進行調用:

@Autowired

MyTableRepository myTableRepository;

// 調用存儲過程

myTableRepository.inOnlyTest(inParam1);

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
四虎在线精品| 国产一区二区三区精品在线观看| 婷婷视频一区二区三区| 日韩成人高清| 香蕉久久国产| 欧美亚洲国产精品久久| 欧美一区成人| 亚洲2区在线| 中文一区二区| 蜜桃视频欧美| 激情综合网站| 伊人久久高清| 久久中文字幕二区| 国产精品蜜芽在线观看| 欧美伊人影院| 国产精品扒开腿做爽爽爽软件| 亚洲一卡久久| 日韩影院在线观看| 老牛国产精品一区的观看方式| 亚洲精品免费观看| 亚洲欧美日本视频在线观看| 伊人久久婷婷| 欧美成人午夜| 蜜桃久久久久久久| 久久亚洲色图| 伊人www22综合色| 青青青国产精品| 日本欧美在线| 日本欧美一区| 日韩精品免费观看视频| 亚洲精选av| 婷婷久久免费视频| 日本免费一区二区视频| 日韩欧美中文在线观看| 四虎在线精品| 日韩精品一区二区三区中文字幕| 亚洲一区日韩在线| 1024精品久久久久久久久| 亚洲香蕉网站| 国产精品试看| 午夜一级久久| 亚洲图片久久| 综合国产在线| 日韩精品一区二区三区中文在线 | 免费久久精品视频| 久久亚洲不卡| 男人的天堂亚洲一区| 免费视频一区二区| 日本中文字幕不卡| 亚洲精品一级| 日韩在线网址| 国产精品片aa在线观看| 国产精品99在线观看| 日韩精品一区二区三区免费观影| 日韩在线精品| 午夜国产精品视频免费体验区| 久热综合在线亚洲精品| 日韩精品三区四区| 九九久久国产| 国产韩日影视精品| 蜜桃久久精品一区二区| 中文字幕亚洲精品乱码| 日韩精品视频中文字幕| 国产欧美日韩影院| 成人福利视频| 午夜欧美精品| 日韩国产在线观看| 国产专区精品| 一区福利视频| 91伊人久久| 久久男人av资源站| 欧美一级专区| 国产欧美激情| 97精品国产福利一区二区三区| 亚洲精品成人图区| 91成人精品| 亚洲一区国产| 国产va免费精品观看精品视频| 婷婷丁香综合| 99国产精品自拍| 欧美精品不卡| 蜜桃国内精品久久久久软件9| 亚洲日韩中文字幕一区| 精品免费av一区二区三区| 婷婷成人基地| 国产亚洲一区二区三区不卡| 婷婷精品在线观看| 成人羞羞在线观看网站| 香蕉成人久久| 久久中文字幕导航| 一区二区小说| 国产欧美啪啪| 精品在线91| a国产在线视频| 国产乱码精品一区二区亚洲| 在线精品一区二区| 午夜在线播放视频欧美| 国产999精品在线观看| 久久亚洲风情| 裤袜国产欧美精品一区| 亚洲精品动态| 久久永久免费| 欧美有码在线| 综合激情一区| 伊人久久婷婷| 成人精品高清在线视频| 亚洲我射av| 精品亚洲美女网站| 鲁大师精品99久久久| 久久久久久黄| zzzwww在线看片免费| 国产亚洲精aa在线看 | 日韩av中文字幕一区| 成人在线免费观看网站| 国产精品久久久久久妇女| 欧美一区久久| 免费成人在线视频观看| 99re国产精品| 999精品在线| 精品久久福利| 日本不卡的三区四区五区| 国户精品久久久久久久久久久不卡 | 欧美国产偷国产精品三区| 日韩精品久久久久久久软件91| 亚洲黄页一区| 黄色日韩精品| 91精品国产成人观看| 欧美日韩精品免费观看视欧美高清免费大片 | 日韩精品第一| 中文一区二区| 久久av一区二区三区| 香蕉久久精品| 亚洲激情二区| 激情综合激情| 黄在线观看免费网站ktv| 色网在线免费观看| 精品国产精品国产偷麻豆| 国产专区精品| 国产亚洲电影| 日本综合精品一区| 久久黄色影视| 久久精品xxxxx| 精品午夜av| 精品一区二区三区中文字幕| 国产精品欧美大片| 国产第一亚洲| 国产aa精品| 国产一区2区在线观看| 激情黄产视频在线免费观看| 福利一区视频| 久久中文字幕二区| 久久精品国产99久久| 樱桃成人精品视频在线播放| 欧美少妇精品| 欧美激情国产在线| 国产精品嫩草影院在线看| 欧美另类中文字幕| 国产精品一区免费在线| 国产欧美一级| 精品中文在线| 最新中文字幕在线播放| 久久国产欧美| 一级欧洲+日本+国产| 久久精品主播| 鲁大师成人一区二区三区| 蜜臀av亚洲一区中文字幕| 18国产精品| 国产黄色精品| 日韩a一区二区| 日韩av一级| 久久蜜桃精品| 婷婷精品在线| 国产精品2区| 91精品一区二区三区综合在线爱 | 福利一区二区三区视频在线观看| 国产成人久久| 久久九九精品| 成人av动漫在线观看| 另类av一区二区| 97精品资源在线观看| 不卡专区在线| 欧美精品高清| 亚久久调教视频| 麻豆免费精品视频| 91成人精品视频| 综合日韩在线| 亚洲成人日韩| 日本中文字幕一区二区视频| 国产精品久av福利在线观看| 亚洲二区精品| 蜜臀av一区二区在线免费观看| 久久永久免费| 久久精品一区二区不卡| 日本h片久久| 精品久久国产一区| 精品成人免费一区二区在线播放| 欧美天堂亚洲电影院在线观看| 亚洲三级av| 99久久亚洲精品| 中文字幕中文字幕精品|