Hibernate调用Oracle存储过程

因为每个设备都会采集的GPS数据,于是决定分表实现。最初想到的是用JDBC来实现,但是总会有意想不到的事情发生,很是郁闷(如摘要所言的问题)。所以思前想后还是把这种SQL操作的事情让存储过程来干吧。

使用Hibernate实现存储过程调用有两种方式:

1、JDBC Call:

Session session =HibernateSessionFactory.getSession();   
Connection conn = session.connection();   
ResultSet rs =null;  
CallableStatement call = conn.prepareCall("{Call proc(?)}");  
call.setString(1, 参数);     
rs = call.executeQuery();  
rs.close();  
session.close();

2、Hibernate SQLQuery:

Session session =HibernateSessionFactory.getSession();   
SQLQuery query = session.createSQLQuery("{Call Tj(?)}"); //这里调用存储过程
query.setString(0,"ddd");
List list =query.list();  
session.close();
时间: 2024-10-06 13:21:05

Hibernate调用Oracle存储过程的相关文章

java hibernate 调用oracle存储过程

1.hibernate 调用存储过程 各种方法 http://www.cnblogs.com/jerryxing/archive/2012/04/28/2475762.html 如果底层数据库(如Oracle)支持存储过程,也可以通过存储过程来执行批量更新.存储过程直接在数据库中运行,速度更加快.在Oracle数据库中可以定义一个名为batchUpdateStudent()的存储过程,代码如下: create or replace procedure batchUpdateStudent(p_a

hibernate调用oracle存储过程||函数

pakeage dao.Impl; //调用函数FUN_GET(); public String get(String Id,String Name){ return getSession().createSQLQuery("select FUN_GET(?,?) from dual") .setParameter(0, Id).setParameter(1, Name).uniqueResult() .toString(); } //uniqueResult()  返回唯一值 //调

jdbc调用 oracle 存储过程操作

创建有参存储函数findEmpNameAndSal(编号),查询7902号员工的的姓名和月薪,[返回多个值,演示out的用法]当返回2个或多个值,必须使用out符号当返回1个值,就无需out符号 create or replace function findEmpNameAndSal(pempno in number,pename out varchar2) return numberas psal emp.sal%type;begin select ename,sal into pename,

C#调用 Oracle 存储过程样例代码

-- 建表CREATE TABLE sale_report (     sale_date DATE NOT NULL ,     sale_item VARCHAR(2) NOT NULL ,      sale_money DECIMAL(10,2) NOT NULL,      PRIMARY KEY(sale_date, sale_item)); -- 測试数据DECLAREv_begin_day DATE;v_end_day DATE;BEGIN v_begin_day := TO_D

在java中调用Oracle存储过程

在java中调用Oracle存储过程 本文介绍如何通过java来调用Oracle的存储过程 1. 编写存储过程 CREATE OR REPLACE PROCEDURE sp_pro3(sp_name VARCHAR2,sp_sal NUMBER ) IS BEGIN --根据用户名修改工资 UPDATE emp SET sal=sp_sal WHERE ename=sp_name; END; 引入jdbc6.jar,编写测试类Test.java package testOraclePro; im

asp.net调用oracle存储过程

oracle内的存储过程是通过游标返回结果集的 DataTable dt = new DataTable(); OracleParameter[] paras = new OracleParameter[5]; paras[0] = new OracleParameter("p_StartTime", OracleType.Char); paras[0].Value = StartTime; paras[1] = new OracleParameter("p_EndTime&

C#调用Oracle存储过程

C#调用Oracle存储过程的代码如下所示: 1 using System; 2 using System.Collections.Generic; 3 using System.Collections.ObjectModel; 4 using System.ComponentModel; 5 using System.Configuration; 6 using System.Data; 7 using System.Data.OracleClient; 8 using System.Draw

C#调用Oracle存储过程的方法

本文实例讲述了C#调用Oracle存储过程的方法.分享给大家供大家参考.具体实现方法如下: Oracle数据库代码如下: 代码如下: create or replace procedure proce_test(paramin in varchar2,paramout out varchar2,paraminout in out varchar2) as varparam varchar2(28); begin varparam:=paramin; paramout:=varparam|| pa

Hibernate调用Oracle的存储过程

众所周知,当过多的使用存储过程,触发器等 数据库方言相关的应用时,应用程序的移植性会变差,特别是在Hibernate中使用这些,简直是讽刺,但是当今中国又有哪家公司做项目会关心应用程序的移植性呢? 现在看看Hibernate中对Oracle存储过程的调用. 1.plsql 代码 create Procedure proc() begin select * from proctab; end; 1 create procedure proc1(v_no number(4)) 2 begin 3 s