Hibernate怎么调用Oracle的存储过程
2016-09-14 13:48
525 查看
众所周知,当过多的使用存储过程,触发器等 数据库方言相关的应用时,应用程序的移植性会变差,特别是在Hibernate中使用这些,简直是讽刺,但是当今中国又有哪家公司做项目会关心应用程序的移植性呢?
现在看看Hibernate中对Oracle存储过程的调用.
1.plsql 代码
2.Hibernate 存储过程调用的一种方法是,通过XML传统的映射方式去调用。
-》存储过程映射和领域模型中的实体的对应关系
xml映射文件
-》Hibernate API 对存储过程的调用
-》JDBC API 对存储过程的调用
-》直接使用 Hibernate createQuerySql调用存储过程
-》通过Hibernate API或者JDBC,API给存储过程传参
现在看看Hibernate中对Oracle存储过程的调用.
1.plsql 代码
create Procedure proc() begin select * from proctab; end;
1 create procedure proc1(v_no number(4)) 2 begin 3 select * from proc1 4 where id=v_no; 5 end;
2.Hibernate 存储过程调用的一种方法是,通过XML传统的映射方式去调用。
-》存储过程映射和领域模型中的实体的对应关系
xml映射文件
-》Hibernate API 对存储过程的调用
1 Session ss= HibernateSessionFactory.getSession() 2 List li=ss.getNamedQuery("getUser").list(); 3 ss.close(); 4 5 Session ss= HibernateSessionFactory.getSession() 6 List li=ss.getNamedQuery("getUser").list(); 7 ss.close();
-》JDBC API 对存储过程的调用
1 Session session =HibernateSessionFactory.getSession(); 2 Connection conn = session.connection(); 3 ResultSet rs =null; 4 CallableStatement call = conn.prepareCall("{Call proc()}"); 5 rs = call.executeQuery(); 6 rs.close(); 7 session.close(); 8 9 Session session =HibernateSessionFactory.getSession(); 10 Connection conn = session.connection(); 11 ResultSet rs =null; 12 CallableStatement call = conn.prepareCall("{Call proc()}"); 13 rs = call.executeQuery(); 14 rs.close(); 15 session.close();
-》直接使用 Hibernate createQuerySql调用存储过程
1 Session session =HibernateSessionFactory.getSession(); 2 SQLQuery query = session.createSQLQuery("{Call proc()}"); 3 List list =query.list(); 4 session.close(); 5 6 Session session =HibernateSessionFactory.getSession(); 7 SQLQuery query = session.createSQLQuery("{Call proc()}"); 8 List list =query.list(); 9 session.close();
-》通过Hibernate API或者JDBC,API给存储过程传参
1 CallableStatement call = conn.prepareCall("{Call proc(?)}"); 2 call.setString(1, 参数); 3 rs = call.executeQuery(); 4 5 CallableStatement call = conn.prepareCall("{Call proc(?)}"); 6 call.setString(1, 参数); 7 rs = call.executeQuery();
1 SQLQuery query = session.createSQLQuery("{Call proc(?)}"); 2 query.setString(0, 参数); 3 List list =query.list();
相关文章推荐
- Hibernate调用Oracle的存储过程
- Oracle 存储过程,Hibernate 调用存储过程,JDBC调用存储过程,Oracle 动态SQL
- Hibernate调用Oracle的存储过程
- java 调用Oracle 存储过程 Jdbc/Hibernate
- hibernate里使用jdbc方式调用oracle带游标返回参数的简单分页存储过程
- hibernate中调用存储过程
- [Oracle]高效的PL/SQL程序设计(五)--调用存储过程返回结果集
- java调用ORACLE 存储过程返回值33
- [Oracle]高效的PL/SQL程序设计(五)--调用存储过程返回结果集
- hibernate中调用存储过程hibernate中调用存储过程
- C#中调用ORACLE的PACKAGE里方法和存储过程的应用
- (原创)ASP.NET中调用存储过程(Oracle版)
- 发布NBearLite v1.0.0 beta - 全面支持SqlServer,Oracle,MySql,PostgreSql数据库存储过程调用代码生成(C#/VB.NET)
- Hibernate3.x调用存储过程
- oracle中存储过程调用存储过程(带有返回结果集)
- 使用ODAC调用ORACLE的自定义函数和存储过程
- Hibernate3.x调用存储过程
- java调用ORACLE 存储过程返回值22
- 在asp中怎么调用带输出参数的存储过程
- [Oracle]高效的PL/SQL程序设计(五)--调用存储过程返回结果集