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

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

Spring Data JPA怎么調用存儲

瀏覽:32日期: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久久,三上悠亚国产精品一区二区三区
欧美一区二区三区久久精品| 亚洲精品1区2区| 在线观看免费一区二区| 色综合视频一区二区三区日韩 | 国产精品一级在线观看| 亚洲精品电影| 国产亚洲高清在线观看| 欧美理论视频| 亚洲欧美成人综合| 老鸭窝亚洲一区二区三区| 欧美成人高清| 久久精品国内一区二区三区水蜜桃| 天海翼精品一区二区三区| 日韩精选在线| 久久精品天堂| 麻豆久久一区二区| 视频一区中文字幕精品| 精品国产中文字幕第一页| 91精品国产乱码久久久久久久| 亚洲二区视频| 欧美1区二区| 久久午夜精品| 99国产精品| 91日韩欧美| 天堂va在线高清一区| 欧美天堂视频| 国产精品第一| 久久av综合| 日韩精品亚洲一区二区三区免费| 99久久亚洲精品蜜臀| 亚洲精品中文字幕99999| 国产精品久久777777毛茸茸| 国产在线观看www| 欧美美女一区| 日韩欧美中文在线观看| 国产精品18| 在线视频观看日韩| 不卡中文字幕| 日本中文字幕视频一区| 久久精品资源| 蜜臀av免费一区二区三区| 亚洲欧美一级| 福利一区二区三区视频在线观看| 99久久视频| 日韩av一二三| 日韩欧美一区二区三区在线观看 | 亚洲一区欧美二区| 国产日韩免费| 久久久久久久久久久妇女 | 野花国产精品入口| 国产精品地址| 国产美女一区| 精品一区二区三区免费看| 亚洲欧美日韩高清在线| 国产欧美午夜| 欧美日韩国产高清| 国产精品久久亚洲不卡| 欧美一区二区三区激情视频| 日韩1区2区日韩1区2区| 亚洲精品**中文毛片| 国产手机视频一区二区| 国产毛片一区二区三区| 伊人久久大香线蕉av超碰演员| 国产精品资源| 亚洲一区二区网站| 成人午夜亚洲| 婷婷亚洲精品| 久久精品官网| 欧美成人aaa| 亚洲精品乱码| 欧美特黄视频| 视频在线不卡免费观看| 日本视频在线一区| 99热免费精品| 欧美天堂视频| 国产一精品一av一免费爽爽| 五月天激情综合网| 国产999精品在线观看 | 午夜欧美精品| 日本黄色精品| 国产日韩免费| 亚洲精品美女| 欧美日韩激情| 欧美男人天堂| 日本91福利区| 日本精品影院| 欧美精品第一区| 综合激情网...| 播放一区二区| 欧美日韩免费观看一区=区三区| 91精品啪在线观看国产18| 女主播福利一区| 欧美激情日韩| 先锋亚洲精品| 亚洲一二av| 日韩一区二区三区在线看| 日韩不卡在线| 国产精品videossex久久发布 | 国产免费成人| 日本精品黄色| 国产精品一卡| 日韩精品第二页| 蜜臀久久久久久久| 亚洲精品电影| 亚洲夜间福利| 欧美综合另类| 99精品综合| 欧美黄色网页| 色婷婷综合网| 成人午夜网址| 美女久久久久久| 国产精品久久久久久妇女| 亚洲一二三区视频| 中文在线不卡| 红桃视频国产精品| 欧美精品一区二区三区精品| 成人看片网站| 99久久婷婷这里只有精品| 日本久久成人网| 久久久9色精品国产一区二区三区| 97精品国产| 福利在线免费视频| 日韩在线第七页| 久久精品国产99久久| 亚洲成人精品| 极品裸体白嫩激情啪啪国产精品| 一本大道色婷婷在线| 国产一区二区三区天码| 国产不卡一区| 香蕉成人av| 欧洲精品一区二区三区| 天堂а√在线最新版中文在线| 久久久久久夜| av一区在线| 国产精品88久久久久久| 亚洲免费影视| 亚洲精品国产精品粉嫩| 日本成人中文字幕| 国产精品美女在线观看直播| 麻豆精品av| 捆绑调教日本一区二区三区| 国产精品亚洲一区二区三区在线观看| 精品国产a一区二区三区v免费| 国产激情在线播放| 久久精品观看| 中文一区一区三区免费在线观 | 免费毛片在线不卡| 国产精品日本欧美一区二区三区| 亚洲一区二区av| 国产精品一区二区三区www| 毛片不卡一区二区| 日韩欧美二区| 国产视频一区欧美| 日韩不卡一区二区三区 | 成人在线黄色| 亚洲一本视频| 婷婷综合国产| 电影91久久久| 好看的亚洲午夜视频在线| 日本亚洲不卡| 日本久久黄色| 蘑菇福利视频一区播放| 国产精品对白| 欧美成人a交片免费看| 欧美日韩国产免费观看| 日韩av在线免费观看不卡| 久久精品亚洲| 欧美特黄视频| 麻豆一区二区三| 99国产精品久久久久久久成人热| 日本91福利区| 日韩中文在线播放| 亚欧成人精品| 色综合狠狠操| 免费在线观看成人| 久久精品国产99国产精品| 亚洲婷婷免费| 国产精品一区二区美女视频免费看 | 亚洲精品大片| 精品国产亚洲日本| 亚洲少妇一区| 美女毛片一区二区三区四区最新中文字幕亚洲 | 亚洲精品伊人| 动漫av一区| 免费不卡在线视频| 国产一区二区三区探花| 在线免费观看亚洲| 日韩精品永久网址| 香蕉久久一区| 日韩不卡在线| 国产亚洲观看| 国产免费成人| 国产va免费精品观看精品视频| 亚洲激情不卡| 精品国产欧美日韩一区二区三区| 中文亚洲欧美| 色偷偷色偷偷色偷偷在线视频| 亚洲精品观看| 欧美va天堂在线| 国产 日韩 欧美 综合 一区|