JDBC和JPA调用储存过程 接收存储过程有返回值
============jdbc==========================================
--java代码:一个输出参数--
String connURL = null;
Connection conn = null;
connURL = "jdbc:sqlserver://192.168.1.157;instanceName=eqmis;DatabaseName=eqmis";
String sqldriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
Class.forName(sqldriver);// 注册加载驱动程序
conn = DriverManager.getConnection(connURL, "sa","1.0");
CallableStatement proc = conn.prepareCall("{ call test(?) }"); //只有一个输出参数
proc.registerOutParameter(1,Types.VARCHAR);
proc.execute();
ystem.out.println(proc.getString(1));
--储存过程(mssql)一个输出参数--
if exists(select * from sysobjects where name='test')
drop proc test
go
create proc test
@mycarID char(19)output--输出参数
as
declare @r numeric(15,8),--接收随机数
@tempr varchar(20)--转换随机数
select @r=RAND((datepart(mm,getdate())*100000)+(DATEPART(SS,GETDATE())*1000)+
(DATEPART(MS,GETDATE())))
select @tempr=CONVERT(varchar(20),@r)
select @mycarID= '1010 3576'+' '+SUBSTRING(@tempr,3,4)+' '+SUBSTRING(@tempr,7,4)
return
go
-------java代码:一个输入参数和一个输出参数---
String connURL = null;
Connection conn = null;
connURL = "jdbc:sqlserver://192.168.1.157;instanceName=eqmis;DatabaseName=eqmis";
String sqldriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
Class.forName(sqldriver);// 注册加载驱动程序
conn = DriverManager.getConnection(connURL, "sa","1.0");
CallableStatement proc = conn.prepareCall("{ call test(?,?) }");
proc.setString(1,"12345");
proc.registerOutParameter(2,Types.VARCHAR);//第二个是输出参数
proc.execute();
System.out.println(proc.getString(2));
--储存过程(mssql)一个输入参数和一个输出参数---
if exists(select * from sysobjects where name='test')
drop proc test
go
create proc test
@getIndex varchar(5),--输入参数
@mycarID char(19)output--输出参数
as
declare @r numeric(15,8),--接收随机数
@tempr varchar(20)--转换随机数
select @r=RAND((datepart(mm,getdate())*100000)+(DATEPART(SS,GETDATE())*1000)+
(DATEPART(MS,GETDATE())))
select @tempr=CONVERT(varchar(20),@r)
select @mycarID= @getIndex+' '+SUBSTRING(@tempr,3,4)+' '+SUBSTRING(@tempr,7,4)
return
go
=====jap:=================================
-------JPA调用储存过程(mssql)注意:EJB3不能调用以OUT参数返回值的存储过程。--
create proc testJpa2
@acode varchar(20)
as
begin
select * from pubuser where acode=@acode
end
go
-------jap:dao--------------------------
String jpql= "{call testJpa2(?)}";
Query obj = em.createNativeQuery(jpql);
bject[] params=new Object[]{'1'}
if (params != null && params.length > 0) {
for (int i = 0; i < params.length; i++) {
obj.setParameter(i + 1, params[i]);
}
}
obj.getResultList().toString();
JDBC和JPA调用储存过程 接收存储过程有返回值的更多相关文章
- .net 接收存储过程的返回值 。。。。
.net 接收存储过程的返回值 .... Posted on 2009-06-10 20:26 且行且思 阅读(...) 评论(...) 编辑 收藏 例如在向数据库添加新数据时,需要检测是否有重复 本 ...
- SqlServer如何获取存储过程的返回值
1.Output参数返回值 1 CREATE PROCEDURE [dbo].[upInformation]( 2 @age int , 3 @id bigint OUTPUT 4 ) 5 AS 6 ...
- 关于ExecuteNonQuery执行存储过程的返回值 、、实例讲解存储过程的返回值与传出参数、、、C#获取存储过程的 Return返回值和Output输出参数值
关于ExecuteNonQuery执行存储过程的返回值 用到过ExecuteNonQuery()函数的朋友们在开发的时候肯定这么用过. if(cmd.ExecuteNonQuery("xxx ...
- 在Delphi中如何获得SQL中存储过程的返回值?
示例存储过程:create procedure proc_loginusername varchar(20),password varchar(20)asdeclare @result intsele ...
- C#获取执行存储过程的" 返回值"代码
以下是C#代码: /// <summary> /// 执行存储过程,返回" 返回值" /// </summary> /// <param name=& ...
- Java程序调用带参数的shell脚本返回值
Java程序调用带参数的shell脚本返回值 首先来看看linux中shell变量(\(#,\)@,$0,$1,\(2)的含义解释 变量说明: - \)$ Shell本身的PID(ProcessI ...
- 利用SQLServer查询分析器获取存储过程的返回值,检查测试存储过程
1.存储过程没有返回值的情况(即存储过程语句中没有return之类的语句)用方法 int count = ExecuteNonQuery(..)执行存储过程其返回值只有两种情况(1)如果通过查询分析器 ...
- MSSQL - 存储过程Return返回值
1.存储过程中不使用外部参数. 存储过程: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ========================== ...
- Entity Framework中对存储过程的返回值的处理
很早就开始注意到EF了,但一直没有机会用,换了工作后,第一个项目就使用EF6进行开发. 项目不是很大,EF完全可以胜任. 但是开发过程中,难免还是会遇到一些复杂的运算,需要频繁访问数据库. 此时,想到 ...
随机推荐
- mysql笔记(前面自己写的不标准有些地方)
day15-MySQL 数据库 1 数据库概念(了解) 1.1 什么是数据库 数据库就是用来存储和管理数据的仓库! 数据库存储数据的优先: l 可存储大量数据: l 方便检索: l 保持数据的一 ...
- 20160131.CCPP体系详解(0010天)
程序片段(01):Test.c+NewTest.c 内容概要:题目测试 ///Test.c #define _CRT_SECURE_NO_WARNINGS #include <stdio.h&g ...
- Windows 小技巧: 變更輸入法順序
Windows XP 中還是有辦法變更輸入法順序的!!只不過,要動用到 Regedit.exe 這個程式. 執行 Regedit.exe至 HKEY_CURRENT_USER\Keyboard Lay ...
- Android RecyclerView使用详解(一)
一.前言 RecyclerView是谷歌V7包下新增的控件,用来替代ListView的使用,在RecyclerView标准化了ViewHolder类似于ListView中convertView用来做视 ...
- 【ASP.NET Web API教程】1.1 第一个ASP.NET Web API
Your First ASP.NET Web API (C#)第一个ASP.NET Web API(C#) By Mike Wasson|January 21, 2012作者:Mike Wasson ...
- PHP生成静态页面
生成静态页面的本质就是读取缓存中的信息,然后写到一个生成的html页面中. 一.用ob_start和ob_get_contents生成静态页面 //打开缓存 <?phpob_start();// ...
- Garlands
题意: n个数分成m段,每段偶数个数,最小化和最大段的半个区间的数字和. 分析: 先想到了二分,dp求能分成的最小段数. #include <map> #include <set&g ...
- asp.net下ajax.ajaxMethod使用方法(转)
使用AjaxMethod可以在客户端异步调用服务端方法,简单地说就是在JS里调用后台.cs文件里的方法,做一些JS无法做到的操作,如查询数据库 使用AjaxMethod要满足一下几点: 1.如 ...
- js代码大全
超级实用且不花哨的js代码大全 事件源对象event.srcElement.tagNameevent.srcElement.type 捕获释放event.srcElement.setCapture() ...
- Android的主要组件
(一)Activity(活动) 作用:提供可视化用户界面 只能通过setContentView(View)来显示指定组件 View组件是所有UI控件.容器控件的基类,View组件就是android应用 ...