一、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语言中文社区...相关推荐

  1. rust的矿坑_转: Rust中的Pin详解 【Rust语言中文社区】

    Rust中的Pin详解 原创 automanyang Rust语言中文社区 昨天 https://mp.weixin.qq.com/s/PjctbPbyR5OeaqTHZdB5uQ 相关概念 Pin ...

  2. 腾讯云开放mysql端口_腾讯云服务器Mysql开启3306端口远程访问

    0. 概要现在需要使用自己计算机上的 Mysql Wordbench 客户端来连接云服务器上的 Mysql 数据库. 1. 记录过程查看Centos版本 [root@VM_0_7_centos ~]# ...

  3. 腾讯云 mysql 远程_腾讯云服务器 MySQL 远程连接设置

    问题说明 使用 MySQL GUI 连接腾讯云的 MySQL 服务器连接失败,经查是由三个原因引起的: 云服务器未配置安全组,开通 3306 端口. 数据库默认只允许本地连接,拒绝远程连接. 所使用 ...

  4. 腾讯云服务器 有mysql吗_腾讯云服务器、数据库购买攻略

    腾讯云服务器.数据库购买攻略 怎么买更省钱?购买页里面就有很多玄机! step 1--注册腾讯云首先,你肯定需要一个腾讯云账号,这里值得注意的是,腾讯云默认是QQ登陆,只要你有QQ账号,输入账号和密码 ...

  5. mysql服务器是否支持tcp/ip连接,(3)MySQL客户端与服务端的TCP/IP及socket连接方式-Go语言中文社区...

    MySQL客户端与服务端的TCP/IP及socket连接方式 客户端与服务器模型 客户端与服务端模型 TCP/IP方式连接 解释说明 TCP/IP套接字方式是MySQL在任何平台下都提供的连接方式,也 ...

  6. mysql隐式锁定辅助索引_当Mysql - InnoDB行锁遇到复合主键和多列索引-Go语言中文社区...

    背景 今天在配合其他项目组做系统压测,过程中出现了偶发的死锁问题.分析代码后发现有复合主键的update情况,更新复合主键表时只使用了一个字段更新,同时在事务内又有对该表的insert操作,结果出现了 ...

  7. go mysql 查询语句_01 MySQL-初识MySQL-查询语句的执行流程-Go语言中文社区

    MySQL的基础架构 我们通过一条查询语句来看看MySQL是如何执行的,同时通过这条语句的执行,了解MySQL的整体架构体系.mysql> select * from T where ID=1: ...

  8. golang mysql断线_MySQL的连接池、异步、断线重连-Go语言中文社区

    MySQL长连接 MySQL短连接每次请求操作数据库都需要建立与MySQL服务器建立TCP连接,这是需要时间开销的.TCP连接需要3次网络通信.这样就增加了一定的延时和额外的IO消耗.请求结束后会关闭 ...

  9. mysql主从配置 简书_Mysql主从配置,实现读写分离-Go语言中文社区

    转载:https://www.cnblogs.com/alvin_xp/p/4162249.html 大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层 ...

最新文章

  1. 高效开发:IntelliJ IDEA天天用,这些Debug技巧你都知道?
  2. BERT为什么是NLP的革新者
  3. 会话、进程组与僵死进程
  4. 云服务器ecs的特点有什么
  5. 必看 | VLAN划分和网络配置实例
  6. 送30块树莓派PICO 开发板!
  7. IT = 加班多?外国小哥打破“魔咒”:“每天工作 10 分钟,工资近 9 万美元!”...
  8. 【Recat 应用】之 React 脚手架
  9. postgresql安装之后修改默认用户密码
  10. geoiplookup命令没有任何输出问题
  11. LINQ TO SQL 动态查询
  12. 利用tensorflow实现手写体识别
  13. 基于TCP的socket详解(Linux系统)
  14. python对外正式发布年份_python正式对外发布的年份
  15. 手握千亿美金的孙正义,这次真的不能如愿了
  16. thingsboard之边缘网关建立连接过程
  17. 联发科嵌入式linux笔试
  18. PAT | 1086 就不告诉你 (15分) 【测试点1、2】
  19. Java XPath
  20. 小米路由器3G建站折腾笔记2 - 刷ROM和开启SSH

热门文章

  1. java编程思想第四版第十四章 类型信息习题
  2. 微信WeixinJSBridge API
  3. Arcgis for javascript不同的状态下自定义鼠标样式
  4. Java学习笔记004——接口、克隆、回调、内部类
  5. matlab7.0安装说明
  6. 关于Actionscript 3中给Flash传参数方法(一)
  7. 【剑指offer】面试题31:栈的压入,弹出序列
  8. linux 查看vnc端口_VNC常用操作及常见问题解决办法汇总
  9. cors 前后端分离跨域问题_SpringBoot 实现前后端分离的跨域访问(CORS)
  10. php flash chat,FlashChat lt;= 4.5.7 (aedating4CMS.php) Remote File Include Vulnerability