jpa mysql存储过程_(原)springbootjpa调用服务器mysql数据库的存储过程方法-Go语言中文社区...
一、springboot jpa項目文件配置
#----------------------------------------------------------
########################################################
###datasource 配置MYSQL數據源;
########################################################
## 數據庫
spring.jpa.database = MYSQL
spring.jpa.show-sql = true
spring.datasource.url=jdbc:mysql://IP:3306/vcoo_food?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root
#spring.datasource.password=root
spring.datasource.password=123456
########################################################
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.tomcat.max-active=100
spring.datasource.tomcat.max-idle=200
spring.datasource.tomcat.initialSize=20
# Hibernate ddl auto (create, create-drop, update)
spring.jpa.properties.hibernate.hbm2ddl.auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
#這個東西建議有,不知道為什么,放他之后,請求數據庫的一些問題自動就沒了
spring.cache.ehcache.config=classpath:ehcache.xml
ehcache.xml
xsi:noNamespaceSchemaLocation="ehcache.xsd">
二、java代碼配置
entity.java
@Entity
@Table(name = "prod_sale_master") //表名
@Component
/***********配置存儲過程地方***************************/
@NamedStoredProcedureQueries({//一個實體類涉及多個存儲過程時,注意配置的格式@***({})
@NamedStoredProcedureQuery(//配置單個存儲過程
name="p_prod_sale_make" ,//springboot jpa 調用的名字
procedureName = "p_prod_sale_make" ,//mysql調用存儲過程的名字
parameters = {//要傳的參數
//in表示傳入 out表示傳出或者說是返回值
//name表示存儲過程要用的參數名稱
//type表示要傳入參數的類型
@StoredProcedureParameter(mode=ParameterMode.IN,name="v_rec_emp",type=String.class),
@StoredProcedureParameter(mode=ParameterMode.IN,name="v_mem_card",type=String.class),
@StoredProcedureParameter(mode=ParameterMode.IN,name="v_Room_Code",type=String.class),
@StoredProcedureParameter(mode=ParameterMode.IN,name="v_Mem_Cnt",type=Integer.class),
@StoredProcedureParameter(mode=ParameterMode.OUT,name="v_Err_Msg",type=String.class)
}),
@NamedStoredProcedureQuery(name="p_chg_room" ,procedureName = "p_chg_room" , parameters = {
@StoredProcedureParameter(mode=ParameterMode.IN,name="v_Bill_Code",type=String.class),
@StoredProcedureParameter(mode=ParameterMode.IN,name="v_Room_Code",type=String.class),
@StoredProcedureParameter(mode=ParameterMode.OUT,name="v_Err_Msg",type=String.class)
})
})
})
/*****************************************/
public class ProdSaleMaster {//實體名
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="rec_id")//建議個數據庫的名字一樣 全部對應 無論大小寫
private Integer rec_id;//序號
@Column(name="bill_code")
/set()/get()
}
serviceImpl.java
@Autowired
private EntityManager entityManager;
@Override
public Object saveProdSaleMaster(String v_rec_emp, String v_mem_card, String v_Room_Code, int v_Mem_Cnt) {
Result resultLogin = new Result();
try {
/**************存儲過程使用配置地方***********************************************/
//StoredProcedureQuery 創建存儲過程倉庫
//createStoredProcedureQuery(name) - 》 name表示 springboot jpa配置的名稱:見entity.java的name
//registerStoredProcedureParameter表示存儲過程中注冊的參數
//ParameterMode 其中的in/out和entity.java中配置一樣
StoredProcedureQuery storedProcedureQuery = this.entityManager.createStoredProcedureQuery("p_prod_sale_make");
storedProcedureQuery.registerStoredProcedureParameter("v_rec_emp", String.class, ParameterMode.IN);
storedProcedureQuery.registerStoredProcedureParameter("v_mem_card", String.class, ParameterMode.IN);
storedProcedureQuery.registerStoredProcedureParameter("v_Room_Code", String.class, ParameterMode.IN);
storedProcedureQuery.registerStoredProcedureParameter("v_Mem_Cnt", Integer.class, ParameterMode.IN);
storedProcedureQuery.registerStoredProcedureParameter("v_Err_Msg", String.class, ParameterMode.OUT);
//setParameter 給存儲過程配置你要傳入的參數
storedProcedureQuery.setParameter("v_rec_emp",v_rec_emp);
storedProcedureQuery.setParameter("v_mem_card", v_mem_card);
storedProcedureQuery.setParameter("v_Room_Code",v_Room_Code);
storedProcedureQuery.setParameter("v_Mem_Cnt", (int) v_Mem_Cnt);
//存儲過程執行調用
storedProcedureQuery.execute();
//getOutputParameterValue 存儲過程執行后,返回的結果,直接取就可以,返回類型只有一個Object類型
Object v_User_Rht = storedProcedureQuery.getOutputParameterValue("v_Err_Msg");
/*****************************************************************/
return v_User_Rht;
} catch (Exception e) {
resultLogin.setStatus(0);
resultLogin.setData(null);
resultLogin.setMessage("請求失敗!");
e.printStackTrace();
return resultLogin;
}finally {
this.entityManager.close();
}
}
以上就是之間配置的所有代碼,然后就可以測試結果。
全部配置方法可參考百度:springboot jpa 配置mysql 請求存儲過程方法 即可查詢到
轉載聲明:本文為博主原創文章,未經博主允許不得轉載
如果我的文章有幫助到您,歡迎打賞一下鼓勵博主。
總結
以上是生活随笔為你收集整理的jpa mysql存储过程_(原)springbootjpa调用服务器mysql数据库的存储过程方法-Go语言中文社区...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js svg语音波动动画_11 个非常受
- 下一篇: 一目了然