`

(收藏)MyBatis与Spring集成

 
阅读更多
http://wdmcygah.iteye.com/blog/2148881

1)spring-mybatis.xml:集成的配置,三种方式选择一种即可。

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans  
    http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context.xsd"> 
 
    <context:component-scan base-package="com.research.mybatis"></context:component-scan> 
 
    <!-- 创建SqlSessionFactory,同时指定数据源 --> 
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 
        <property name="dataSource" ref="dataSource" /> 
        <property name="configLocation" 
            value="classpath:generator/spring/spring-mybatis-config.xml"></property> 
    </bean> 
 
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
        destroy-method="close"> 
        <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
        <property name="url" 
            value="jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=utf8&amp;generateSimpleParameterMetadata=true" /> 
        <property name="username" value="root" /> 
        <property name="password" value="root" /> 
    </bean> 
     
    <!-- 方式1、使用继承SqlSessionDaoSupport方式 --> 
    <bean id="mybatisSpringDaoUseDaoSupport" 
        class="com.research.mybatis.spring.MybatisSpringDaoUseDaoSupport"> 
        <property name="sqlSessionFactory" ref="sqlSessionFactory" /> 
    </bean> 
 
    <!-- 方式2、使用sqlSessionTemplate方式 --> 
    <bean id="mybatisSpringDaoUseTemplate" class="com.research.mybatis.spring.MybatisSpringDaoUseTemplate"> 
        <property name="sqlSession" ref="sqlSession"></property> 
    </bean> 
 
    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> 
        <constructor-arg ref="sqlSessionFactory"></constructor-arg> 
    </bean> 
 
    <!-- 方式3、使用扫描Mapper类的方式 --> 
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 
        <property name="sqlSessionFactory" ref="sqlSessionFactory"></property> 
        <property name="basePackage" value="com.research.mybatis.generator.dao"></property> 
    </bean> 
 
</beans> 

(2)spring-mybatis-config.xml:这个是MyBatis相关的配置,不需要配置太多,因为集成的时候环境配置、数据源配置、事务配置都交给Spring去管理了。

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE configuration 
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
  "http://mybatis.org/dtd/mybatis-3-config.dtd"> 
<configuration> 
    <typeAliases> 
        <typeAlias alias="AgentInvokeGenerate" type="com.research.mybatis.generator.model.AgentInvokeGenerate"/> 
    </typeAliases> 
    <mappers> 
        <mapper resource="generator/mapper/AgentInvokeGenerateMapper.xml"></mapper> 
    </mappers> 
</configuration> 
(3)AgentInvokeGenerateMapper.xml:具体Sql

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 
<mapper namespace="com.research.mybatis.generator.dao.AgentInvokeGenerateMapper"> 
   
  <resultMap id="BaseResultMap" type="com.research.mybatis.generator.model.AgentInvokeGenerate"> 
    <id column="ID" jdbcType="CHAR" property="ID" /> 
    <result column="DB_FLAG" jdbcType="VARCHAR" property="dbFlag" /> 
    <result column="STATUS" jdbcType="CHAR" property="STATUS" /> 
  </resultMap> 
   
  <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap"> 
    select  
    <include refid="Base_Column_List" /> 
    from agent_info 
    where ID = #{ID,jdbcType=CHAR} 
  </select> 
</mapper> 

具体调用的代码如下:

(1)使用SqlSessionTemplate方式:

package com.research.mybatis.spring; 
 
import org.apache.ibatis.session.SqlSession; 
 
import com.research.mybatis.generator.model.AgentInvokeGenerate; 
 
public class MybatisSpringDaoUseTemplate { 
 
    private SqlSession sqlSession; 
     
    public AgentInvokeGenerate getAgentInvokeById(String id){ 
        return sqlSession.selectOne("com.research.mybatis.generator.dao.AgentInvokeGenerateMapper.selectByPrimaryKey", id); 
    } 
 
    public SqlSession getSqlSession() { 
        return sqlSession; 
    } 
 
    public void setSqlSession(SqlSession sqlSession) { 
        this.sqlSession = sqlSession; 
    }      


(2)使用SqlSessionDaoSupport方式:

package com.research.mybatis.spring; 
 
import org.mybatis.spring.support.SqlSessionDaoSupport; 
import org.springframework.stereotype.Repository; 
 
import com.research.mybatis.generator.model.AgentInvokeGenerate; 
 
@Repository 
public class MybatisSpringDaoUseDaoSupport extends SqlSessionDaoSupport{ 
 
    public AgentInvokeGenerate getAgentInvokeById(String id){ 
        return getSqlSession().selectOne("com.research.mybatis.generator.dao.AgentInvokeGenerateMapper.selectByPrimaryKey", id); 
    }  


(3)使用Mapper方式:

package com.research.mybatis.spring; 
 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Repository; 
 
import com.research.mybatis.generator.dao.AgentInvokeGenerateMapper; 
import com.research.mybatis.generator.model.AgentInvokeGenerate; 
 
@Repository 
public class MybatisSpringDaoUseMapper { 
 
    @Autowired 
    private AgentInvokeGenerateMapper mapper; 
     
    public AgentInvokeGenerate getAgentInvokeById(String id){ 
        return mapper.selectByPrimaryKey(id); 
    } 


   相关实体类和Mapper类:

package com.research.mybatis.generator.model; 
 
public class AgentInvokeGenerate { 
    private String ID; 
 
    private String dbFlag; 
 
    private String STATUS; 
 
    public String getID() { 
        return ID; 
    } 
 
    public void setID(String ID) { 
        this.ID = ID == null ? null : ID.trim(); 
    } 
 
    public String getDbFlag() { 
        return dbFlag; 
    } 
 
    public void setDbFlag(String dbFlag) { 
        this.dbFlag = dbFlag == null ? null : dbFlag.trim(); 
    } 
 
    public String getSTATUS() { 
        return STATUS; 
    } 
 
    public void setSTATUS(String STATUS) { 
        this.STATUS = STATUS == null ? null : STATUS.trim(); 
    } 



package com.research.mybatis.generator.dao; 
 
import com.research.mybatis.generator.model.AgentInvokeGenerate; 
 
public interface AgentInvokeGenerateMapper { 
 
    AgentInvokeGenerate selectByPrimaryKey(String ID); 


具体测试类如下(使用TestNG):

(1)使用SqlSessionTemplate方式的测试类:

package com.research.mybatis.spring; 
 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.test.context.ContextConfiguration; 
import org.springframework.test.context.testng.AbstractTestNGSpringContextTests; 
import org.testng.Assert; 
import org.testng.annotations.Test; 
 
import com.research.mybatis.generator.model.AgentInvokeGenerate; 
 
@ContextConfiguration(locations="classpath:/generator/spring/spring-mybatis.xml") 
public class MybatisSpringDaoUseTemplateTest extends AbstractTestNGSpringContextTests{ 
 
  @Autowired 
  private MybatisSpringDaoUseTemplate dao; 
     
  @Test 
  public void getAgentInvokeById() { 
    String id = "001"; 
    AgentInvokeGenerate ai = dao.getAgentInvokeById(id); 
    Assert.assertTrue("000".equals(ai.getDbFlag())); 
  } 


(2)使用SqlSessionDaoSupport方式的测试类:

package com.research.mybatis.spring; 
 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.test.context.ContextConfiguration; 
import org.springframework.test.context.testng.AbstractTestNGSpringContextTests; 
import org.testng.Assert; 
import org.testng.annotations.Test; 
 
import com.research.mybatis.generator.model.AgentInvokeGenerate; 
 
@ContextConfiguration(locations="classpath:/generator/spring/spring-mybatis.xml") 
public class MybatisSpringDaoUseDaoSupportTest extends AbstractTestNGSpringContextTests{ 
 
  @Autowired 
  private MybatisSpringDaoUseDaoSupport dao; 
     
  @Test 
  public void getAgentInvokeById() { 
    String id = "001"; 
    AgentInvokeGenerate ai = dao.getAgentInvokeById(id); 
    Assert.assertTrue("000".equals(ai.getDbFlag())); 
  } 


(3)使用Mapper方式的测试类:

package com.research.mybatis.spring; 
 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.test.context.ContextConfiguration; 
import org.springframework.test.context.testng.AbstractTestNGSpringContextTests; 
import org.testng.Assert; 
import org.testng.annotations.Test; 
 
import com.research.mybatis.generator.model.AgentInvokeGenerate; 
 
@ContextConfiguration(locations="classpath:/generator/spring/spring-mybatis.xml") 
public class MybatisSpringDaoUseMapperTest extends AbstractTestNGSpringContextTests{ 
 
  @Autowired 
  private MybatisSpringDaoUseMapper dao; 
     
  @Test 
  public void getAgentInvokeById() { 
    String id = "001"; 
    AgentInvokeGenerate ai = dao.getAgentInvokeById(id); 
    Assert.assertTrue("000".equals(ai.getDbFlag())); 
  } 

分享到:
评论

相关推荐

    mybatis-spring集成

    MyBatis-Spring集成是MyBatis与Spring框架整合的方案,旨在帮助开发者无缝地将MyBatis整合到Spring项目中。这种整合不仅使MyBatis能够利用Spring框架提供的事务管理功能,还提供了一种方便的方式来注入MyBatis的数据...

    mybatis-spring-1.3.1.jar下载

    6. **与Spring Data集成**:虽然MyBatis-Spring主要是为MyBatis和Spring的集成设计的,但也可以与Spring Data JPA等其他数据访问技术配合使用,提供更加丰富的数据访问选项。 与MyBatis-3.4.4的配合使用: 1. **...

    mybatis-spring-1.31.jar

    首先,MyBatis-Spring通过自动配置,可以将MyBatis的数据源、SqlSessionFactory和Mapper接口与Spring的bean容器集成。这使得我们可以在Spring配置文件中声明式地管理MyBatis的相关组件,避免了手动创建和管理...

    MyBatis整合Spring中间件jar包 mybatis-spring-1.3.0.jar

    MyBatis-Spring是MyBatis与Spring框架的整合组件,其主要目的是简化在Spring应用中集成MyBatis的过程,使两者能够无缝协作。mybatis-spring-1.3.0.jar是这个中间件的特定版本,包含了实现这种集成所需的所有类和资源...

    mybatis-spring-1.3.0.jar 下载

    《深入解析mybatis-spring-1.3.0.jar:集成与应用》 在Java开发领域,MyBatis和Spring框架的结合使用是常见的实践,它们的整合使得数据访问层的构建更为便捷和灵活。本篇文章将围绕"mybatis-spring-1.3.0.jar"这一...

    mybatis-spring-1.3.3.jar官方下载

    MyBatis-Spring 是一个将 MyBatis ORM 框架与 Spring 框架集成的库,使得在 Spring 应用中使用 MyBatis 变得更加方便。mybatis-spring-1.3.3.jar 文件是这个集成库的一个版本,提供了对 MyBatis 1.3.3 和 Spring 的...

    mybatis-spring-1.2.0.jar

    标签 "mybatis spring 包查找网站" 进一步细化了这个文件的相关性,表明它是与MyBatis和Spring集成相关的,并且与寻找这类库的在线资源有关。MyBatis是一个灵活的SQL映射框架,它将SQL与Java代码分离,而Spring是一...

    实现Mybatis与Spring集成

    下面我们将详细探讨如何实现Mybatis与Spring的集成,以及在这个过程中涉及的关键知识点。 1. **示例功能描述** 实现Mybatis与Spring的集成主要是为了在Spring管理的环境下,方便地使用Mybatis进行SQL操作,包括...

    mybatis与spring融合时使用的两个包

    综上所述,mybatis-3.2.2.jar和mybatis-spring-1.2.1.jar是MyBatis与Spring集成的基础,它们让开发者能够在Spring的管理下轻松地使用MyBatis,实现数据访问层的高效开发。通过这两个库,你可以享受到Spring的自动化...

    mybatis,mybatis-spring

    MyBatis和MyBatis-Spring是两个在Java开发中常用的框架,主要用于简化数据库操作和实现Spring框架的无缝集成。MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,避免了几乎所有的JDBC代码和...

    MyBatis 与 Spring Boot 集成.zip

    MyBatis 与 Spring Boot 集成 MyBatis Spring-Boot-Starter 将帮助你将MyBatis与Spring Boot结合使用要求掌握MyBatis 3.5、MyBatis-Spring 3.0、Java 17+ 和 Spring Boot 3.0-3.22.3.xMyBatis 3.5、MyBatis-Spring ...

    mybatis-spring-1.1.1-bundle

    总结来说,mybatis-spring-1.1.1是将MyBatis与Spring集成的关键组件,通过它可以充分发挥两个框架的优势,简化开发工作。理解并熟练掌握MyBatis-Spring的配置和使用,对于提升Java企业级应用开发效率至关重要。

    mybatis-spring 整合包

    MyBatis-Spring 整合包是专门为将MyBatis持久层框架与Spring应用框架集成而设计的一个组件。这个包的出现旨在简化MyBatis在Spring环境中的配置和使用,使得开发者可以充分利用两者的优点,实现更加灵活和方便的数据...

    mybatis与spring整合全部jar包

    mybatis-spring.jar则是专门用于MyBatis与Spring集成的库,它使得MyBatis的SqlSessionFactory或SqlSessionTemplate可以通过Spring的Bean工厂来管理,便于实现事务控制。 4. **Spring MVC库**:包括spring-webmvc....

    MyBatis与Spring整合jar包(1).rar

    这个名为"MyBatis与Spring整合jar包(1).rar"的压缩包,很可能是包含了一些必要的库文件,帮助开发者快速搭建一个支持MyBatis和Spring集成的项目环境。 首先,我们要理解MyBatis和Spring的基本概念。MyBatis是一个...

    mybatis和spring的整合包(完整版).rar

    Spring还支持数据访问抽象,可以方便地与MyBatis集成。 MyBatis与Spring的整合主要有两种方式:一是基于Spring的Bean工厂管理SqlSessionFactory,二是使用MyBatis-Spring库。在第一种方式中,Spring管理...

    mybatis与spring整合全部jar包.rar

    这个压缩包提供了MyBatis和Spring整合所需的基本依赖,可以直接导入到项目中使用,从而快速搭建起一个支持MyBatis与Spring集成的环境。开发者在实际使用时,还需根据项目需求调整相关配置,并编写具体的Mapper接口和...

    mybatis-spring-1.0.1-bundle.zip

    总的来说,MyBatis-Spring 1.0.1 版本为开发者提供了一个简洁、高效的 MyBatis 与 Spring 集成方案。通过合理配置和使用其中的核心组件,可以在 Spring 应用中轻松地实现对数据库的访问,同时充分利用 Spring 的事务...

Global site tag (gtag.js) - Google Analytics