成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

Spring Data JPA怎么調(diào)用存儲

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

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

Spring Data JPA怎么調(diào)用存儲

1、存儲過程

假設(shè)存儲過程如下:

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

它需要一個輸入?yún)?shù)inParam1,但不返回值

2)in_and_out_test

它需要一個輸入?yún)?shù)inParam1,且返回值outParam1

2、@NamedStoredProcedureQueries

我們可以使用@NamedStoredProcedureQueries注釋來調(diào)用存儲過程。

@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 {

}

關(guān)鍵要點:

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

procedureName是存儲過程的名字

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

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

3、創(chuàng)建Spring Data JPA數(shù)據(jù)庫

下面我們來創(chuàng)建Spring Data JPA數(shù)據(jù)庫:

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);

}

關(guān)鍵要點:

@Procedure的name參數(shù)必須匹配@NamedStoredProcedureQuery的name

@Param必須匹配@StoredProcedureParameter注釋的name參數(shù)

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

4、調(diào)用

我們可以這樣調(diào)用存儲過程:

// 向存儲過程傳遞參數(shù)并返回值

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");

// 向存儲過程傳遞參數(shù)不返回值

myTableRepository.inOnlyTest(inParam);

5、其它技巧

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

定義自定義的Repository:

public interface MyTableRepositoryCustom {

void inOnlyTest(String inParam1);

}

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

復(fù)制代碼 代碼如下:

public interface MyTableRepository extends CrudRepository

6、創(chuàng)建Repository實現(xiàn)類

接著該創(chuàng)建Repository實現(xiàn)類了:

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();

}

}

可以以常規(guī)的方式進(jìn)行調(diào)用:

@Autowired

MyTableRepository myTableRepository;

// 調(diào)用存儲過程

myTableRepository.inOnlyTest(inParam1);

標(biāo)簽: Spring
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
日韩av不卡在线观看| 亚洲国产激情av| 国产一级精品在线| 亚洲视频二区| 国产嫩草影院久久久久| 成人黄动漫网站免费app| 在线观看日韩一区| 亚洲免费毛片网站| 欧美在线观看天堂一区二区三区| 欧美一区中文字幕| 精品一区二区在线看| 久久深夜福利| 亚洲电影在线播放| 亚洲精品无人区| 综合色中文字幕| 国内精品久久久久久久果冻传媒| 久久精品日产第一区二区三区高清版| 国产成人免费在线观看不卡| 欧美日韩电影一区| 久久机这里只有精品| 色拍拍在线精品视频8848| 欧美视频三区在线播放| 亚洲福利一二三区| 久久久久久网| 老司机免费视频一区二区| 欧美视频一区在线| 国产在线播放一区| 欧美一区二区三区日韩视频| 成人动漫av在线| 久久女同精品一区二区| 99精品黄色片免费大全| 精品捆绑美女sm三区| 国产成都精品91一区二区三| 欧美一级黄色录像| 9久草视频在线视频精品| 国产喂奶挤奶一区二区三区| 国产一区久久| 一区二区在线电影| 亚洲一区欧美二区| 亚洲h在线观看| 色成年激情久久综合| 精品一区二区三区影院在线午夜| 在线观看91av| 成人免费黄色在线| 久久久久国产一区二区三区四区 | 99亚偷拍自图区亚洲| 日韩视频在线观看一区二区| 99久久久无码国产精品| 中文字幕av一区二区三区高| 亚洲天堂男人| 午夜一区二区三区在线观看| 欧洲精品在线观看| 成人午夜看片网址| 国产女主播一区| 亚洲一区二区三区高清不卡| 视频一区二区国产| 欧美午夜精品一区二区蜜桃| 国产传媒久久文化传媒| 26uuu成人网一区二区三区| 欧美涩涩视频| 亚洲精品乱码久久久久久久久 | 日韩视频中午一区| 国产综合婷婷| 午夜精品福利一区二区三区蜜桃| 欧美日韩一区三区| 欧美一区三区二区在线观看| 亚洲综合在线五月| 在线电影院国产精品| 99精品热视频| 一区二区三区中文字幕| 欧美调教femdomvk| 91日韩一区二区三区| 亚洲一区中文日韩| 91精品国产色综合久久ai换脸| 国产精品亚洲专一区二区三区 | 欧美96在线丨欧| 夜色激情一区二区| 欧美一卡2卡三卡4卡5免费| 欧美极品一区二区三区| 亚洲大片免费看| 日韩一级片在线播放| 亚洲天堂久久| 狠狠色丁香婷婷综合| 国产精品美日韩| 色狠狠色噜噜噜综合网| 欧美一区三区二区在线观看| 日韩和的一区二区| 26uuu成人网一区二区三区| 性伦欧美刺激片在线观看| 成人精品电影在线观看| 亚洲高清不卡在线| 久久亚洲春色中文字幕久久久| 国产精品亚洲综合色区韩国| 狠狠色综合播放一区二区| 99精品久久只有精品| 香蕉乱码成人久久天堂爱免费| 欧美一区二区在线免费观看| 亚洲激情亚洲| 成人一区在线观看| 亚洲午夜精品网| 2021中文字幕一区亚洲| 美日韩精品视频| 91小视频在线观看| 日韩国产在线观看一区| 国产精品免费视频网站| 欧美精品在线视频| 中国女人久久久| www.亚洲国产| 亚洲aaa精品| 国产午夜精品久久久久久久| 欧美色男人天堂| 1000部精品久久久久久久久| 国产成人亚洲综合a∨猫咪| 亚洲成人免费观看| 欧美激情一区二区三区在线| 欧美日韩国产首页在线观看| 亚洲伦伦在线| 99免费精品视频| 久久精品99国产精品| 一区二区三区在线免费播放| 欧美xxxxx裸体时装秀| 在线观看av一区二区| 亚洲国产午夜| 粉嫩av一区二区三区| 日本特黄久久久高潮| 中文字幕佐山爱一区二区免费| 91精品国产麻豆国产自产在线 | 国产综合色在线视频区| 亚洲妇女屁股眼交7| 1000部国产精品成人观看| 日韩欧美一二区| 欧美中文字幕久久| 1024成人| 欧美a级片网站| 国产成人精品一区二区三区四区 | 91视视频在线直接观看在线看网页在线看 | av电影在线观看完整版一区二区| 日本中文字幕不卡| 亚洲欧美成aⅴ人在线观看| 精品国产麻豆免费人成网站| 在线一区二区三区四区五区| 99爱精品视频| 欧美精品一区二区三区在线看午夜| 国产成人综合在线观看| 久久国产精品99久久人人澡| 亚洲高清不卡在线| 亚洲男同性恋视频| 国产精品美女一区二区| 久久久久久久久久久久久女国产乱| 欧美精品粉嫩高潮一区二区| 久久久国产亚洲精品| 亚洲激情一区二区三区| 午夜精品电影| 99国产精品久| 成人黄色综合网站| 高清日韩电视剧大全免费| 国内精品久久久久影院色| 日韩国产精品久久| 午夜精品久久久久久久久久久| 亚洲男女一区二区三区| 中文字幕一区二区三区在线观看| 久久久青草青青国产亚洲免观| 欧美一区二区啪啪| 欧美一区二区三区小说| 在线精品视频免费播放| 一本色道综合亚洲| 久久久久一区| 麻豆91精品| 久久亚洲一区| 久久免费一区| 久久综合九色综合久99| 美女精品国产| 亚洲欧美日韩另类精品一区二区三区 | 成人在线综合网| 国产99精品在线观看| 国产成人亚洲综合a∨猫咪| 国产九九视频一区二区三区| 国产原创一区二区| 国产一区二区福利视频| 国产成人午夜片在线观看高清观看| 国产99久久久精品| 成人av电影免费在线播放| 成人h动漫精品一区二区| 不卡影院免费观看| 91麻豆文化传媒在线观看| 欧美国产精品| 永久91嫩草亚洲精品人人| 日韩一区二区免费看| 免费看亚洲片| 91福利资源站| 欧美日韩国产综合一区二区三区| 欧美日韩高清一区| 欧美一区二区在线免费观看| 欧美成人精品二区三区99精品| 久久日一线二线三线suv| 欧美国产综合色视频| 国产精品国产三级国产a| 国产精品久久久久久久蜜臀| 亚洲手机成人高清视频| 亚洲综合小说图片|