`
Mrpublic
  • 浏览: 16439 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

EJB3.0中使用oracle存储过程返回结果集或单一对象

阅读更多
(本人非计算机专业的,计算机术语不太专业)
本人刚接触到存储过程,确实感到它处理大量数据的速度,原本要4分钟的数据处理经过存储过程后只需4秒种就完成了,但对存储过程中的出现异常处理怎样处理不太了解,最近二天终于把存储过程的返回结果集在EJB3.0的环境中整理出来了;
一般情况下,大家都会直接在代码中用jdbc来获取数据源信息:
...
String driver = "oracle.jdbc.driver.OracleDriver";
String strUrl = "jdbc:oracle:thin:@10.0.1.224:1521:XXX";
Statement stmt = null;
ResultSet rs = null;
Connection conn = null;
try {
    Class.forName(driver);
    conn =  DriverManager.getConnection(strUrl, "XXX", "***");
    CallableStatement proc = null;
    proc = conn.prepareCall("{call proc_test(?,?)}");
    proc.setString(1, "test");
    proc.registerOutParameter(2, oracle.jdbc.OracleTypes.VARCHAR);
    proc.execute();
    ...
   }catch(...){
   ...
}
...

这样的话个人觉得十分不方便,如果数据源一改动就能去变代码。。。
但如果写一个方法去获得数据源配置信息(xml文件等),又显得很复杂与麻烦,
经过请教与查询后 在seam 中可以直接用HibernateSessionProxy,来直接获取数据源信息,十分方便。代码如下
...
HibernateSessionProxy proxy=(HibernateSessionProxy)this.getEntityManager().getDelegate();
Connection connection=proxy.connection();
  try {
     CallableStatement call=connection.prepareCall("{procs.test(?,?)}");
call.setString(1, empIds);
call.registerOutParameter(2, oracle.jdbc.OracleTypes.VARCHAR);
call.execute();
...

这样写的话就十分方便 。当然就能在EJB中获取Out的返回值了(之前看到了很多文章都用EJB3.0环境下不能获得,看样子就可以的!)

呵呵 现在要获得返回结果集就 非常方便呀
ResultSet rsResult = (ResultSet) call.getObject(2); 此时 上面的 call.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);

如果是获得存储过程中参数为 out varchar(2)

String  str=call.getgetString(5);
其它的类推 ,希望这个对刚接触存储过程的朋友有帮助。
如果写的过程中有什么问题,请帮忙纠正,谢谢。。。


0
1
分享到:
评论

相关推荐

    精通EJB3.0 pdf

    EJB3.0最显著的改变之一是引入了对注解的支持,这使得开发者可以在类和方法上使用注解来声明EJB的属性和配置,从而极大地简化了EJB组件的创建过程。例如,可以使用`@Stateless`、`@Stateful`和`@Singleton`注解来...

    ejb3.0开发规范PDF

    在EJB 3.0中,实体Bean的使用大大简化。不再需要实现EntityBean接口,而是通过`@Entity`注解来标记实体类。此外,EJB 3.0引入了`@GeneratedValue`来自动化主键生成,`@OneToMany`、`@ManyToOne`、`@OneToOne`和`@...

    ejb3.0入门图文教程

    在EJB 3.0中,Entity Bean代表持久化对象,它存储在数据库中并与数据库进行交互。这个部分将介绍如何定义实体bean,包括使用JPA(Java Persistence API)来注解实体类,设置主键,以及使用实体管理器进行CRUD(创建...

    ejb3.0开发实例(java工程)

    EJB 3.0是其发展的一个重要里程碑,引入了许多改进,使得开发过程更为简化和面向对象。在这个"ejb3.0开发实例(java工程)"中,我们将深入探讨EJB 3.0的主要特性和开发实践。 1. **注解驱动**:EJB 3.0最大的变革之...

    EJB3.0架包

    EJB3.0是EJB规范的一个重要版本,它在EJB2.x的基础上进行了大量简化,提高了开发效率,并引入了注解驱动的开发方式,使得EJB更易于理解和使用。 在EJB3.0中,主要包含以下关键知识点: 1. **实体Bean(Entity ...

    EJB3.0+JBOSS+MyEclipse初体验(完整代码和过程)

    在"**EJB3.0+JBOSS+MyEclipse初体验(完整代码和过程).txt**"文件中,你将找到一个完整的示例,涵盖了上述所有步骤,包括具体的代码片段和执行过程,这对于初学者来说是一个很好的起点,可以快速理解并实践EJB 3.0在...

    EJB3.0规范中文版

    7. **查询语言(Query Language)**:Java Persistence Query Language (JPQL) 是EJB 3.0中用于检索和操作数据库的语句,类似于SQL,但操作的是对象而非记录。 8. **生命周期方法(Lifecycle Callbacks)**:开发者可以...

    Java之精通EJB3.0.pdf

    1. **简化编程模型:**EJB3.0引入了许多新的特性来简化开发过程,例如使用注解来替代XML配置文件,这大大减轻了开发者的负担。 2. **容器管理实体Bean(CMB):**EJB3.0中引入了容器管理实体Bean(CMB),它支持持久...

    EJB3.0源代码

    EJB 3.0是EJB规范的一个重要版本,它在2006年发布,带来了许多重大的改进,极大地简化了EJB的开发和部署过程,使得Java EE应用程序的开发更加高效和易用。 在EJB 3.0中,最重要的改变之一是引入了注解(Annotations...

    李腾飞EJB3.0 源码 源代码

    2. **实体Bean的简化**:EJB 3.0中的实体Bean(Entity Bean)基于JPA(Java Persistence API),采用了更直观的POJO(Plain Old Java Object)模型,允许开发者直接使用普通的Java类来表示数据库中的对象。...

    EJB 3.0实例教程.pdf

    EJB 3.0是EJB规范的一个重大革新,它极大地简化了EJB的开发过程,引入了许多面向开发者友好的特性,如注解、依赖注入以及更轻量级的架构。 **1. 注解驱动的开发** 在EJB 3.0之前,开发者需要编写大量的XML配置文件...

    EJB3.0入门经典(PDF)

    《EJB3.0入门经典》内容丰富,讲解由浅入深,全面系统,在讲解EJB 3.0最新开发技术的同时,精心设计了与章节内容相关的实例,给出了开发过程中运用到的技巧和注意事项,相信读者一定能从中获益。

    《EJB 3.0入门经典》 源码

    EJB 3.0是EJB规范的一个重大革新,它极大地简化了开发过程,降低了学习曲线,使得更多开发者能够轻松地使用EJB进行企业级开发。 《EJB 3.0入门经典》是一本专门介绍EJB 3.0的著作,由黎活明编著。这本书深入浅出地...

    ejb2.0与ejb3.0的区别

    - **EJB 3.0**:取消了Home接口的需求,简化了实体Bean的创建和查找过程。 #### 五、其他变化 - **EJB 3.0**:提供了轻量级的支持,使得开发人员能够更容易地集成EJB到应用程序中。例如,可以使用POJO(Plain Old ...

    EJB3.0API.rar_ejb_ejb3.0a_ejb3.0api

    2. **实体bean的POJO化(Plain Old Java Objects)**:EJB 3.0引入了基于Java Persistence API(JPA)的实体bean,允许使用普通的Java类作为数据库对象,无需继承特定的EJB基类或实现接口,提高了代码的可重用性。...

    精通EJB3.0 中文版 3/3

    第二部分重点关注EJB编程的具体内容和过程,向开发者展示了如何使用会话Bean、将会话Bean发布为Web服务、消息驱动Bean;第三部分专注于高级EJB专题;第四部分是附录,收集了EJB组件技术相关的其他内容。

    EJB3.0中文文档

    **3.9.8 查询中使用构造器(Constructor)** 返回一个由查询结果组成的自定义对象。 **3.9.9 聚合查询(Aggregation)** 进行统计分析,如计数、求和等。 **3.9.10 关联(join)** 连接多个实体Bean进行查询。 **3.9...

    精通EJB3.0 中文版 1/3

    第二部分重点关注EJB编程的具体内容和过程,向开发者展示了如何使用会话Bean、将会话Bean发布为Web服务、消息驱动Bean;第三部分专注于高级EJB专题;第四部分是附录,收集了EJB组件技术相关的其他内容。

    EJB3.0和Spring比较

    EJB3.0允许在不同应用服务器上运行,如JBoss的Hibernate实现和Oracle的TopLink实现。即使EJB3.0规范尚未最终确定,开发者仍可以通过嵌入式EJB3.0产品获得支持。 - 相反,Spring是一个非标准的开源解决方案,使用...

    EJB 3.0规范官方文档

    EJB(Enterprise JavaBeans)3.0规范是Java EE(Enterprise Edition)平台中核心的组件模型,用于构建可扩展、安全且易于管理的企业级应用程序。EJB 3.0是EJB规范的一个重要里程碑,因为它引入了许多重大的改进,...

Global site tag (gtag.js) - Google Analytics