導航:首頁 > 編程語言 > javajpa調用存儲過程

javajpa調用存儲過程

發布時間:2022-11-12 09:32:26

㈠ EtityManager調用存儲過程報錯

在EJB3 中你可以調用的存儲過程有兩種
1.無返回值的存儲過程。
2.返回值為ResultSet(以select 形式返回的值)的存儲過程(注意:EJB3不能調用以OUT參數返回值的存儲過程。)

下面我們看看幾種具有代表性的存儲過程的調用方法.

調用無返回值的存儲過程
首先創建一個名為AddPerson的存儲過程,他的DDL 如下(註:本例使用的是MySql資料庫):

CREATE PROCEDURE `AddPerson`()
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT ''

㈡ 如何在JPA的po類中調用存儲過程和函數

在項目開發中用到了JPA規范,並在po類中使用了存儲過程,這種資料在網上很容易找到,所以很快就跑通了,代碼如下:

@Entity
@Table(name = "USER", schema = "MOBILE", uniqueConstraints = {
@UniqueConstraint(columnNames = { "LOGINID" }),
@UniqueConstraint(columnNames = { "USERACCOUNT" }) })
@NamedNativeQuery(name = "addUser", query = "{call addUser(:pPortalID,:ploginid,:ploginpasswd,:pSelfQuiz,:pSelfAnswer,:pUserEmail,:pUserAccount,:pUserPin)}", hints = { @QueryHint(name = "org.hibernate.callable", value = "true") }, resultClass = User.class)
public class User implements java.io.Serializable {

private static final long serialVersionUID = 5325039036880950119L;
private String userid;
private String loginid;
private String passwd;
//省略若干代碼
}

㈢ JPA執行存儲過程需要在步驟上註明@Transactional嗎

一般的增刪改都要用@Transactional,只要你的方法里有這三類的操作就要加上這個註解,對於查就無所謂了

簡單的理解就是需要修改資料庫的操作你就加這個註解好了

㈣ 如何在JPA的po類中調用存儲過程和函數

在項目開發中用到了JPA規范,並在po類中使用了存儲過程,這種資料在網上很容易找到,所以很快就跑通了,代碼如下:

@Entity
@Table(name = "USER", schema = "MOBILE", uniqueConstraints = {
@UniqueConstraint(columnNames = { "LOGINID" }),
@UniqueConstraint(columnNames = { "USERACCOUNT" }) })
@NamedNativeQuery(name = "addUser", query = "{call addUser(:pPortalID,:ploginid,:ploginpasswd,:pSelfQuiz,:pSelfAnswer,:pUserEmail,:pUserAccount,:pUserPin)}", hints = { @QueryHint(name = "org.hibernate.callable", value = "true") }, resultClass = User.class)
public class User implements java.io.Serializable {

private static final long serialVersionUID = 5325039036880950119L;
private String userid;
private String loginid;
private String passwd;
//省略若干代碼
}
但是後來卻要求將addUser改成了函數,所以也要將po類中的調用修改。起初我以為很簡單,資料庫中的存儲過程和函數差不多,不用修改直接調用即可。但是事實卻不像我想得那樣,錯誤百出,我上網查了很多資料,但是沒有能給出答案的,後來才知道只要修改一個地方就可以獲得想要的功能,郁悶!

下面是修改後的代碼:

@Entity
@Table(name = "USER", schema = "MOBILE", uniqueConstraints = {
@UniqueConstraint(columnNames = { "LOGINID" }),
@UniqueConstraint(columnNames = { "USERACCOUNT" }) })
@NamedNativeQuery(name = "addUser", query = "{?=call addUser(:pPortalID,:ploginid,:ploginpasswd,:pSelfQuiz,:pSelfAnswer,:pUserEmail,:pUserAccount,:pUserPin)}", hints = { @QueryHint(name = "org.hibernate.callable", value = "true") }, resultClass = User.class)
public class User implements java.io.Serializable {

private static final long serialVersionUID = 5325039036880950119L;
private String userid;
private String loginid;
private String passwd;
//省略若干代碼
}
請注意call addUser語句,存儲過程是直接調用,而調用函數則是在前面加?=.這可是我幾天幾夜不休得出的結果,拿出來與大家分享,希望有需要的朋友不要走我的彎路!
轉載

㈤ JPA如果調用ORACLE中的函數,跟調用存儲過程不一樣哦,我把函數換成存儲過程做了,以下是調用存儲過程的

Oracle定義存儲過程和函數主要是為了解決比較復雜的功能。是SQL語句的集合。

㈥ jpa調用mysql有多返回值存儲過程詳解

jpa調用mysql有多返回值存儲過程詳解
@Entity
@Table(name = "USER", schema = "MOBILE", uniqueConstraints = {
@UniqueConstraint(columnNames = { "LOGINID" }),
@UniqueConstraint(columnNames = { "USERACCOUNT" }) })
@NamedNativeQuery(name = "addUser", query = "{call addUser(:pPortalID,:ploginid,:ploginpasswd,:pSelfQuiz,:pSelfAnswer,:pUserEmail,:pUserAccount,:pUserPin)}", hints = { @QueryHint(name = "org.hibernate.callable", value = "true") }, resultClass = User.class)
public class User implements java.io.Serializable {

private static final long serialVersionUID = 5325039036880950119L;
private String userid;
private String loginid;
private String passwd;
//省略若干代碼
}

㈦ java,怎麼根據實體類和註解生成基礎的增刪改查的存儲過程

  1. 使用Mybatis,這個是最簡單的,配置完畢後直接在你的方法上面加Query註解

  2. 這個更簡單,使用Jpa,一個叫JpaRepository的類你可以關注一下,繼承了這個類以

    後甚至不用寫方法和實現類,空著就行,這個類裡面封裝好了基本的crud,而如果想復雜

    點可以參考一下這個類的文檔,方法名根據他們的規范來寫,同樣不需要實現類,再復雜

    點的就直接加上Query註解就行啦

㈧ JPA如何調用ORACLE的存儲過程

1、springboot依賴jpa

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

2、存儲過程栗子如下

Procere policy_no(a tb_bams_define.card_type_code%Type,
b Out tb_bms_detail.card_no%Type);

3、先創建一個entity

@Entity
@Table(name="Policy_table")
@NamedStoredProcereQuery(name="policy_no", procereName = "policy_no",parameters= {
@StoredProcereParameter(mode=ParameterMode.IN, type=String.class, name="a"),
@StoredProcereParameter(mode=ParameterMode.OUT, type=String.class, name="b")
})
public class PolicyTable {}

a和b是存儲過程中的入參和出參。存儲過程的名字保持一致。

4、層

public interface PolicyDao extends CrudRepository<PolicyTable, Long>{

@Procere(name="policy_no")
String createPolicy(@Param("a")String str);
}

5、調用簡單

@Autowired
private PolicyDao policyDao;

note:最主要就是各種名稱保存一致。

㈨ JPA怎麼調用ORACLE的存儲過程

雖然在資料庫的控制台上運行SQL和調用存儲過程的方法是一樣的,但是某些JDBC驅動程序里是運行SQL和調用存儲過程的實現方法是不一樣的,所以如果要調用存儲過程的話還是用CallableStatement比較好。

㈩ jpa訪問資料庫的存儲過程怎麼寫

@Entity
@Table(name = "USER", schema = "MOBILE", uniqueConstraints = {
@UniqueConstraint(columnNames = { "LOGINID" }),
@UniqueConstraint(columnNames = { "USERACCOUNT" }) })
@NamedNativeQuery(name = "addUser", query = "{call addUser(:pPortalID,:ploginid,:ploginpasswd,:pSelfQuiz,:pSelfAnswer,:pUserEmail,:pUserAccount,:pUserPin)}", hints = { @QueryHint(name = "org.hibernate.callable", value = "true") }, resultClass = User.class)
public class User implements java.io.Serializable {

閱讀全文

與javajpa調用存儲過程相關的資料

熱點內容
免費的看片網站入囗 瀏覽:497
shs文件怎麼刪除 瀏覽:913
什麼優app黃色 瀏覽:292
大人變小孩的電影 瀏覽:852
想做老師有什麼app好用 瀏覽:485
七星彩網購app有哪些 瀏覽:713
js12和K9 瀏覽:69
手機越獄看片 瀏覽:359
小米2s能刷安卓60 瀏覽:673
李彩潭性感勾魂 瀏覽:965
全民網課app哪個最好 瀏覽:560
韓劇電影在線免費 瀏覽:263
電影新空房禁地在線 瀏覽:14
蘋果平板電腦mimi432g 瀏覽:211
ios百度網盤本地文件怎麼打開 瀏覽:491
日常型常量數據用什麼符號引起 瀏覽:198
黑人英語課作弊播放 瀏覽:602
有劇情的露點電影 瀏覽:799
家旺家俊阿梅是哪個電影 瀏覽:318
皮皮陪練app怎麼發布動態 瀏覽:565

友情鏈接