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

bddc8cfefaacb51a3a9108303ad489ed.png

二、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 请求存储过程方法 即可查询到

转载声明:本文为博主原创文章,未经博主允许不得转载

如果我的文章有帮助到您,欢迎打赏一下鼓励博主。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/500676.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

现代软件工程系列 学生的精彩文章 (3) 如何在Bug 不断的情况下还能保持平常心...

from: http://teamkingofcsharp.spaces.live.com/blog/cns!59FC2D3DD66822AA!222.entry 感想 平常心 初中的数学老师常常和我说:“你要学会保持一颗平常心”。我是一个不那么豁达开朗的人,对很多事情都会很看重,GPA,排名&#x…

mysql 不需要@的变量_mysql参数变量

mysql服务器的系统变量,mysql server system viriables,其实我更愿意叫它为“系统参数”!每一个系统变量都有一个默认值,这个默认值是在编译mysql系统的时候确定的。对系统变量的指定,一般可以在server启动的时候在命令行指定选项…

mysql 快速导出_mysql 快速导入导出

随着数据库的数据越来越大,采用mysqldump 越来越慢,测试环境的机器配置不高,2G左右的数据导入进入像蜗牛一般,非常影响效率,这里采用一些改进的方法来比以前导入的速度提高好几倍,但日常配备应有更好的策略…

现代软件工程系列 学生读后感 梦断代码

from:http://ttcs.spaces.live.com/blog/cns!C3759CC6FCEEBDD7!121.entry?sa147831050November 10梦断代码读后介绍 一,这本书讲了什么?软件是人们自以为最有把握,实则最难掌握的技术。作者罗森伯格对OSAF主持的Chandler项目进行长期调查&am…

现代软件工程系列 学生读后感 梦断代码 DTSlob (1)

1As you see, I’ve marked this post Number 1. Let’s leave the last post on “Dreaming in code” Number 0 :) This time, I will focus on the issue of PEOPLE, partly based on Chapter 0 and 1 in that book.Why focus on PEOPLE? Think about our group, think abo…

mysql 索引 简书_MySQL 索引

索引用于快速查找具有特定列值的行。如果没有索引,MySQL必须从第一行开始,然后读取整个表以查找相关行。表越大,成本越高。如果表中有相关​​列的索引,MySQL可以快速确定要在数据文件中间寻找的位置,而无需查看所有数…

现代软件工程系列 学生读后感 梦断代码 DTSlob (2)

http://dtslob.spaces.live.com/?_c11_BlogPart_BlogPartblogview&_cBlogPart&partqsamonth%3d12%26ayear%3d2008Dreaming in code Blog Post 3 Dreaming in Code这书,读着读着就到了尾声,然后惊讶的发现关于后面章节的内容和我的想法&#xff…

java 管理系统登陆完毕后关闭窗口_【求助】登录窗口登录成功后隐藏窗口

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼代码如下:import java.awt.*;import java.awt.event.*;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import javax.swing.*;import jdbc.Connect;public class login extends J…

python高级功能_python高级篇

1.切片功能:类似于java中的split方法。对list或者triple中几个值进行取出的过程。L [a,b,c,d] L[0:3] [a,b,c] #下标从0开始,取到第n-1个元素 L[-2:] [c,d] #倒序取值2.迭代(循环)功能:python中的可遍历对象只要是可迭代对象,例如list…

现代软件工程系列 学生读后感 梦断代码 SpringGreen

“拿来的代码所不能做到的部分,恰是项目与众不同的创新之处”。 《梦断代码》 终于看完了《梦段代码》。其实整本书就是讲图灵机的不可判定性————软件开发过程中,很多过程都不知道什么时候能不能结束,甚至说能不能做出来,这导…

qt 无法打开shell32_在Qt中用默认程序打开文件

用法: QProcess::execute("explorer 文件名");例: QProcess::execute("explorer c:\\123.txt");----------------------------------------------------------------------应该早有大虾发现了这个方法,只是我没搜到,于是有…

现代软件工程系列 学生读后感 梦断代码 布鲁克斯法则

《梦断代码》读后感(第1~6章) 书名:"Dreaming in Code",作者:Scott Rosenberg(中译本:《梦断代码》,翻译:韩磊,电子工业出版社出版)。第…

现代软件工程系列 学生的精彩文章 (6) 项目总结

http://lunarthu.spaces.live.com/?_c11_BlogPart_pagedirNext&_c11_BlogPart_handlecns!48EA3793D3DA17C8!211&_c11_BlogPart_BlogPartblogview&_cBlogPartJanuary 10学做一个PM By Cheng Lu 对于我们的SmartMe,我是真正倾注了感情的。看到今天SmartM…

sqlite查询空日期类型_SQLite比较日期

我有这个sql语句:SELECT Geburtsdatum FROM KundeWHERE Geburtsdatum BETWEEN 1993-01-01 AND 2000-01-01但我得到一些奇怪的结果,如:2.02.1990“Geburtsdatum”是DATE任何建议或解决方案?我的表格结构:CREATE TABLE Kunde (Kunde…

现代软件工程系列 学生读后感 梦断代码 软件难做

http://cid-064ec84e17924332.spaces.live.com/blog/cns!64EC84E17924332!173.entryDecember 06读《梦断代码》 读《梦断代码》的感想 《梦断代码》详细叙述了OSAF的Chandler项目从2001年开创以来直至2005年间的进展状况,真实展示了Chandler项目的艰难的开发过程&am…

现代软件工程系列 结对编程 (II) 电梯调度程序

[很多同学完成了上一个结对编程项目后, 很想知道下一个项目是什么, 我们这次要练习如何设计 接口, 测试框架, 和算法] 现代软件工程系列 结对编程 (II) 电梯调度程序 ------- Pair Project II Elevator Scheduler Design and implement an Elevator Scheduler to aim for …

java 中violate_Java中的Volatile关键字

Java的volatile关键字用于标记一个Java变量为“在主存中存储”。更确切的说,对volatile变量的读取会从计算机的主存中读取,而不是从CPU缓存中读取,对volatile变量的写入会写入到主存中,而不只是写入到CPU缓存。实际上,…

现代软件工程系列 创新靠学分

如何在学校里讲创新, 这是一个老问题。 但是天朝的教育体制总有办法,请看: http://news.163.com/10/1125/03/6MABIS4H00014AED.html 武汉一高校设"创新学分" 不搞创新不能毕业 去年秋季,武汉科技大学中南分校出台《学籍管理规定》,…

java 如何发提示_消息提醒-如何实现收到待办给QQ发送提醒?

一、前期准备一台windows服务器(用于运行QQ机器人)下载QQ机器人框架二、QQ机器人配置1、解压前面下载的机器人框架和httpapi2、打开解压后的 小栗子框架.exe3、在用户列表右击选择添加单个4、添加后右击点添加后的账号选择登录选中QQ5、点击应用中心>点击导入插件>选中前…

顶级程序员的心得 - Coders at Work

这篇博客经历了 CSDN 的历次改版后,格式已经坏了, 我重新写了一篇,重排了格式: 顶级程序员的心得 –– Coders at Work_SoftwareTeacher的专栏-CSDN博客顶级程序员的心得 –– Coders at Work我2009年读了 “Coders at Work”, …