本文参考《精通JPA与Hibernate:Java对象持久化技术详解》 ,作者:孙卫琴 ,清华大学出版社出版
以下SQL代码定义了一个名为findCustomers的存储过程,p_age为输入参数,p_count为输出参数: delimiter //
create procedure findCustomers(in p_age integer,out p_count integer)
begin
select count(*) into p_count from CUSTOMERS where AGE>p_age;
select name from CUSTOMERS;
end //
JPA API中的StoredProcedureQuery接口能够调用存储过程,并且还能设置输入参数,以及读取输出参数:
StoredProcedureQuery query=entityManager
.createStoredProcedureQuery("findCustomers");
//注册参数
query.registerStoredProcedureParameter(1,
Integer.class,ParameterMode.IN);
query.registerStoredProcedureParameter(2,
Integer.class,ParameterMode.OUT);
int age=15;
query.setParameter(1,age); //设置参数
List names=query.getResultList(); //调用存储过程
for (Object name:names) //遍历查询结果
System.out.println((String)name);
//读取输出参数
System.out.println("年龄大于"+age+"的客户数目:"
+(Integer)query.getOutputParameterValue(2));
程序猿的技术大观园:www.javathinker.net
[这个贴子最后由 admin 在 2021-10-09 10:44:56 重新编辑]
网站系统异常
系统异常信息
Request URL:
http://www.javathinker.net/WEB-INF/lybbs/jsp/topic.jsp?postID=3797
java.lang.NullPointerException
如果你不知道错误发生的原因,请把上面完整的信息提交给本站管理人员 。