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完全可以胜任. 但是开发过程中,难免还是会遇到一些复杂的运算,需要频繁访问数据库. 此时,想到 ...
随机推荐
- [反汇编练习] 160个CrackMe之024
[反汇编练习] 160个CrackMe之024. 本系列文章的目的是从一个没有任何经验的新手的角度(其实就是我自己),一步步尝试将160个CrackMe全部破解,如果可以,通过任何方式写出一个类似于注 ...
- C的输入输出函数的基本用法
printf输出函数: printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息. printf()函数的调用格式为: printf("<格式化字符串>& ...
- 理解matplotlib绘图
matplotlib是基于Python语言的开源项目,旨在为Python提供一个数据绘图包.Matplotlib 可能是 Python 2D-绘图领域使用最广泛的套件.它能让使用者很轻松地将数据图形化 ...
- 初步认识mongodb文件
初步认识mongo. README文件介绍压缩包中各个文件的功能. bin/mongod - MongoDB server bin/mongo - MongoDB client bin/mongodu ...
- Centos6.5自带mysql的启动
CentOS6.5选择web server版本,安装完以后,用rpm -qa | grep mysql 发现已经安装, 但是使用service mysqld start 显示mysqld命令不存在,后 ...
- 摘录:官方文档对ROWID虚拟行的定义
ROWID Pseudocolumn For each row in the database, the ROWID pseudocolumn returns the address of the r ...
- Android堆栈分析
在开发中,与界面跳转联系比较紧密的概念是Task(任务)和Back Stack(回退栈).activity的启动模式会影响Task和Back Stack的状态, 进而影响用户体验.除了启动模式之外,I ...
- android部分手机onclick事件触发2次
var t1 = null; function btnSave() { if (t1 == null) { t1 = new Date().getTime(); } else { var t2 = n ...
- uglifyjs使用
1.安装Nodejs:去这里下载并安装. 2.打开cmd,运行npm,node应该会有输出东西 3.如果在window上运行Node.js的npm报Error: ENOENT, stat 'C:\Us ...
- 实现两个N*N矩阵的乘法,矩阵由一维数组表示
实现两个N*N矩阵的乘法,矩阵由一维数组表示. 先介绍一下矩阵的加法: void Add(int rows, int cols) { ;i<rows;i++) { ;j<cols;j++) ...