(本人非计算机专业的,计算机术语不太专业)
本人刚接触到存储过程,确实感到它处理大量数据的速度,原本要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);
其它的类推 ,希望这个对刚接触存储过程的朋友有帮助。
如果写的过程中有什么问题,请帮忙纠正,谢谢。。。
分享到:
相关推荐
EJB3.0最显著的改变之一是引入了对注解的支持,这使得开发者可以在类和方法上使用注解来声明EJB的属性和配置,从而极大地简化了EJB组件的创建过程。例如,可以使用`@Stateless`、`@Stateful`和`@Singleton`注解来...
在EJB 3.0中,实体Bean的使用大大简化。不再需要实现EntityBean接口,而是通过`@Entity`注解来标记实体类。此外,EJB 3.0引入了`@GeneratedValue`来自动化主键生成,`@OneToMany`、`@ManyToOne`、`@OneToOne`和`@...
在EJB 3.0中,Entity Bean代表持久化对象,它存储在数据库中并与数据库进行交互。这个部分将介绍如何定义实体bean,包括使用JPA(Java Persistence API)来注解实体类,设置主键,以及使用实体管理器进行CRUD(创建...
EJB 3.0是其发展的一个重要里程碑,引入了许多改进,使得开发过程更为简化和面向对象。在这个"ejb3.0开发实例(java工程)"中,我们将深入探讨EJB 3.0的主要特性和开发实践。 1. **注解驱动**:EJB 3.0最大的变革之...
EJB3.0是EJB规范的一个重要版本,它在EJB2.x的基础上进行了大量简化,提高了开发效率,并引入了注解驱动的开发方式,使得EJB更易于理解和使用。 在EJB3.0中,主要包含以下关键知识点: 1. **实体Bean(Entity ...
在"**EJB3.0+JBOSS+MyEclipse初体验(完整代码和过程).txt**"文件中,你将找到一个完整的示例,涵盖了上述所有步骤,包括具体的代码片段和执行过程,这对于初学者来说是一个很好的起点,可以快速理解并实践EJB 3.0在...
7. **查询语言(Query Language)**:Java Persistence Query Language (JPQL) 是EJB 3.0中用于检索和操作数据库的语句,类似于SQL,但操作的是对象而非记录。 8. **生命周期方法(Lifecycle Callbacks)**:开发者可以...
1. **简化编程模型:**EJB3.0引入了许多新的特性来简化开发过程,例如使用注解来替代XML配置文件,这大大减轻了开发者的负担。 2. **容器管理实体Bean(CMB):**EJB3.0中引入了容器管理实体Bean(CMB),它支持持久...
EJB 3.0是EJB规范的一个重要版本,它在2006年发布,带来了许多重大的改进,极大地简化了EJB的开发和部署过程,使得Java EE应用程序的开发更加高效和易用。 在EJB 3.0中,最重要的改变之一是引入了注解(Annotations...
2. **实体Bean的简化**:EJB 3.0中的实体Bean(Entity Bean)基于JPA(Java Persistence API),采用了更直观的POJO(Plain Old Java Object)模型,允许开发者直接使用普通的Java类来表示数据库中的对象。...
EJB 3.0是EJB规范的一个重大革新,它极大地简化了EJB的开发过程,引入了许多面向开发者友好的特性,如注解、依赖注入以及更轻量级的架构。 **1. 注解驱动的开发** 在EJB 3.0之前,开发者需要编写大量的XML配置文件...
《EJB3.0入门经典》内容丰富,讲解由浅入深,全面系统,在讲解EJB 3.0最新开发技术的同时,精心设计了与章节内容相关的实例,给出了开发过程中运用到的技巧和注意事项,相信读者一定能从中获益。
EJB 3.0是EJB规范的一个重大革新,它极大地简化了开发过程,降低了学习曲线,使得更多开发者能够轻松地使用EJB进行企业级开发。 《EJB 3.0入门经典》是一本专门介绍EJB 3.0的著作,由黎活明编著。这本书深入浅出地...
- **EJB 3.0**:取消了Home接口的需求,简化了实体Bean的创建和查找过程。 #### 五、其他变化 - **EJB 3.0**:提供了轻量级的支持,使得开发人员能够更容易地集成EJB到应用程序中。例如,可以使用POJO(Plain Old ...
2. **实体bean的POJO化(Plain Old Java Objects)**:EJB 3.0引入了基于Java Persistence API(JPA)的实体bean,允许使用普通的Java类作为数据库对象,无需继承特定的EJB基类或实现接口,提高了代码的可重用性。...
第二部分重点关注EJB编程的具体内容和过程,向开发者展示了如何使用会话Bean、将会话Bean发布为Web服务、消息驱动Bean;第三部分专注于高级EJB专题;第四部分是附录,收集了EJB组件技术相关的其他内容。
**3.9.8 查询中使用构造器(Constructor)** 返回一个由查询结果组成的自定义对象。 **3.9.9 聚合查询(Aggregation)** 进行统计分析,如计数、求和等。 **3.9.10 关联(join)** 连接多个实体Bean进行查询。 **3.9...
第二部分重点关注EJB编程的具体内容和过程,向开发者展示了如何使用会话Bean、将会话Bean发布为Web服务、消息驱动Bean;第三部分专注于高级EJB专题;第四部分是附录,收集了EJB组件技术相关的其他内容。
EJB3.0允许在不同应用服务器上运行,如JBoss的Hibernate实现和Oracle的TopLink实现。即使EJB3.0规范尚未最终确定,开发者仍可以通过嵌入式EJB3.0产品获得支持。 - 相反,Spring是一个非标准的开源解决方案,使用...
EJB(Enterprise JavaBeans)3.0规范是Java EE(Enterprise Edition)平台中核心的组件模型,用于构建可扩展、安全且易于管理的企业级应用程序。EJB 3.0是EJB规范的一个重要里程碑,因为它引入了许多重大的改进,...