`
blueram
  • 浏览: 762442 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

Mybatis与Hibernate共存项目调用存储过程

 
阅读更多

项目中同时使用Hibernate(用于权限的基础框架)+Mybatis(业务开发),最近用到Mybatis调用存储过程,这下问题可来了。

开始在junit里面测试,不行,一直有一个空指针。哭

junit的配置类

package com.rixing;

import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestExecutionListeners;
import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.transaction.annotation.Transactional;

/**
 * User: renjunjie
 * Date: 13-7-9 上午10:24
 * Function:
 */
@RunWith(SpringJUnit4ClassRunner.class)
@TestExecutionListeners( { DependencyInjectionTestExecutionListener.class })
@ContextConfiguration(locations={"classpath:spring-test.xml","classpath:spring-data-test.xml"})
@TransactionConfiguration(transactionManager="transactionManager",defaultRollback=true)
public class SpringTest extends AbstractTransactionalJUnit4SpringContextTests {
}

 这是一个带有事务控制的测试基类。经过仔细查看发现了错误代码里面有hibernate的内容,奇怪了,用mybatis怎么会用到hibernate呢。想到配置事务的时候是用HibernateTransactionManager统一管理的,难道是这个问题。更改测试基类

@RunWith(SpringJUnit4ClassRunner.class)
@TestExecutionListeners( { DependencyInjectionTestExecutionListener.class })
@ContextConfiguration(locations={"classpath:spring-test.xml","classpath:spring-data.xml"})
public class OracleFunTest {

 直接运行,通过了。

然后在程序里面测试,发现还是有问题,问题在aop配置的事务。改正不需要事务控制的全部

 <tx:method name="*" propagation="NEVER" />

 这下可以了。

 

 

mybatis调用oracle带结果集的存储过程的方法,仔细查看mybatis的手册,发现oracle的结果集必须是自定义的resultMap。

http://hillfallshore.iteye.com/blog/1462355

 

 

分享到:
评论

相关推荐

    解决在同一项目中Hibernate与Mybatis共存的问题的解决方案.docx

    框架本身没有对错一说,只有适合和更适合项目的选择。任何框架都有自身的能力范围,就拿Hibernate和Mybatis这两个ORM框架来说。 Hibernate封装了很多有用的API给开发者,降低了操作数据库的难度和复杂度,同时也减少...

    hibernate与mybatis一起使用取长补短

    标题“hibernate与mybatis一起使用取长补短”暗示了在一个项目中同时采用这两种框架,旨在充分利用它们各自的优点,以提升项目的性能和灵活性。 Hibernate是一款强大的ORM框架,它提供了完整的对象模型支持,包括...

    springboot mybatis 动态调用oracle存储过程,通过存储过程名称,就能动态调用存储过程、java动态调用or

    能不能写个动态的业务,只输入存储过程名称,自动获取存储过程参数,并且参数的数据从前台传递过来...只根据输入不同的存储过程名称、参数内容,自动调用不同的存储过程。 已经使用在多个项目中 全开源项目 请放心下载

    MyBatis调用存储过程

    在MyBatis的映射文件(mapper.xml)中,我们需要为存储过程创建一个`&lt;select&gt;`标签,但与通常的查询不同,这里需要设置`id`(标识符)、`resultMap`(结果映射)以及`statementType="CALLABLE"`,这表明这是一个调用...

    mybatis调用存储过程

    在调用过程中,如果出现错误,MyBatis会抛出异常,如`SQLException`。可以捕获这些异常,获取错误信息进行调试。此外,使用日志框架(如Log4j或Logback)可以帮助跟踪和分析MyBatis的执行过程。 6. 动态SQL与存储...

    springboot(4) 整合mybatis和hibernate

    在本教程中,我们将深入探讨如何在Spring Boot项目中整合MyBatis和Hibernate这两个流行的ORM框架。Spring Boot因其简化配置和快速开发的能力而备受青睐,而MyBatis和Hibernate则是Java世界里常用的持久层解决方案。...

    mybatis调用orclae存储过程

    MyBatis作为一款流行的Java持久层框架,提供了一种方便的方式来调用这些存储过程。下面将详细介绍如何使用MyBatis来调用Oracle存储过程。 ### 1. 创建Oracle存储过程 首先,我们需要在Oracle数据库中创建一个存储...

    springboot整合mybatis调用oracle存储过程

    本文将深入探讨如何在Spring Boot项目中整合MyBatis,实现调用Oracle存储过程并处理游标返回的数据。 首先,我们需要在Spring Boot项目中引入相关的依赖。在`pom.xml`文件中添加Oracle JDBC驱动(ojdbc66-oracle...

    spring mybatis 调用oracle存储过程

    在实际项目中,还需要确保Spring配置文件中已经正确配置了数据源、事务管理器以及MyBatis的相关bean,同时在Mapper接口和XML配置文件中正确映射了存储过程的输入输出参数。 通过以上步骤,开发者可以在Spring和...

    Mybatis传list参数调用oracle存储过程的解决方法

    "Mybatis调用Oracle存储过程传List参数解决方法" Mybatis是当前最流行的持久层框架之一,它提供了强大的数据访问和操作功能。但是,如何将List类型参数传递给Oracle存储过程,实现批量插入数据却是一个棘手的问题,...

    mybatis调用存储过程源码

    这个提供的"mybatis调用存储过程源码"压缩包,包含了一个完整的MyBatis调用存储过程的示例,解压后可以直接运行,帮助开发者理解如何在实际项目中实现这一功能。详细注释可以帮助初学者更好地理解和学习这一过程。...

    spring mvc + mybatis 调用mysql 存储过程

    本文将详细讲解如何在Spring MVC和MyBatis集成的项目中调用MySQL存储过程。 首先,让我们理解存储过程的概念。存储过程是在数据库中预编译的一组SQL语句,可以包含输入、输出和内部参数,能够执行复杂的业务逻辑。...

    spring-mybatis-hibernate-jar包

    标题中的"spring-mybatis-hibernate-jar包"指的是一个整合了Spring、MyBatis和Hibernate三个框架的Java项目打包成的JAR文件。这个JAR文件通常用于简化部署,将所有依赖集中在一起,便于在Java应用程序中使用。下面将...

    mybatis调用mysql存储过程

    本篇将详细阐述如何使用MyBatis调用MySQL中的存储过程,帮助你深入理解这一核心技能。 首先,我们需要了解存储过程的基本概念。存储过程是预编译的SQL语句集合,它封装了多个操作,可以在数据库服务器上执行,提高...

    MyBatis调用MYSQL存储过程

    MyBatis调用MYSQL存储过程 返回多行 引用的包: asm-3.1.jar cglib-2.2.jar commons-logging-1.1.1.jar log4j-1.2.13.jar mybatis-3.0.4.jar mysql-connector-java-5.1.13.jar slf4j-api-1.5.8.jar slf4j-log4j12-...

    Spring4+SpringMVC+mysql+memcached【同时支持mybatis+hibernate两种底层操作框架】

    5. **MyBatis**:MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。它使开发者能够专注于SQL编写,同时保持灵活度,减少了...

    mybatis调用储存过程

    通过以上步骤,你就可以在MyBatis项目中成功调用存储过程了。这种方式不仅简化了代码,提高了可维护性,同时也保持了数据库操作的灵活性。在实际项目中,根据具体需求,你可能还需要考虑事务管理、异常处理等方面,...

    springmvc、struts2区别、mybatis、hibernate区别

    struts2介绍、和springmvc对比,mybatis介绍和hibernate对比

    spring mvc mybatis hibernate完整项目代码

    spring mvc mybatis hibernate完整项目代码,完整JAR包。 运行URL路径:http://localhost:8080/cims/template.do?type=addTemplate

    Mybatis调用PostgreSQL存储过程实现数组入参传递

    在本文中,我们将探讨如何在Mybatis框架中调用PostgreSQL的存储过程,特别是处理 PostgreSQL 的数组类型作为存储过程的输入参数。Mybatis是一个流行的Java持久层框架,它允许开发者编写SQL语句,并与Java对象进行...

Global site tag (gtag.js) - Google Analytics