Spring整合MyBatis的几种方式

    在咱们使用mybatis的时候,先来大致讲一下mybatis的一些东西。以及以及基本的类。有SqlSessionFactory.SqlSession.在咱们不适用spring的时候。咱们本身使用mybatis。进行操做数据的时候,这两个类是必须的。下面是没有使用spring的状况下。直接进行操做数据库的地方。以下:java

    private static SqlSessionFactory sqlSessionFactory;
    private static Reader reader;
    private static SqlSession session;
    private static TestMapper testMapper;

    static {
        try {
            reader = Resources.getResourceAsReader("sqlTest/myBatis.xml");
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
            session = sqlSessionFactory.openSession();
            testMapper = session.getMapper(TestMapper.class);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
     public void inserUSer(){
        testMapper.insertTest(test);
        session.commit();
    }


   首先知道SqlSession是如何使用的。而后咱们来进行Spring和Mybatis的整合。本人使用的是全注解的方式。只贴出相关的整合的代码。Spring的配置地方不进行代码贴出。git

以下:github

 <!-- spring 整合  mybatis   -->
 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:sqlMapConfig.xml"></property>
   <property name="mapperLocations" value="classpath:sqlmap/*.xml"/>
 <!-- mapper和resultmap配置路径 -->
     <!--<property name="mapperLocations">
         <list>
           <value>classpath:sqlmap/TUserMapper.xml</value>
         </list>
     </property>-->
 </bean>


<!-- DAO接口所在包名,Spring会自动查找其下的类 -->
 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.inga.dao" />
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
 </bean>

上面的mapperLocations的地方,能够使用上面两种方式其中的一种。下面是sqlMapConfig.xml的源码。spring

分页插件的地方。能够本身选择使用。这个分页插件是在github上面找的一个插件。sql

<?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 type="com.inga.bean.TUser" alias="TUser"/>
        </typeAliases>

        <!-- 分页插件 -->
        <plugins>
                <plugin interceptor="com.inga.utils.page.utils.MybatisPageableInterceptor">
                        <!-- <property name="dialectClass" value="com.inga.utils.page.utils.MySQLDialect"/> -->
                        <property name="dialect" value="MYSQL"/>
                </plugin>
        </plugins>

</configuration>

    上面配置好之后。就能够使用了。还有一种注解的方式。
数据库

配置只是把上面的地方进行了修改。只贴出修改的地方的代码。session

<!-- DAO接口所在包名,Spring会自动查找其下的类 -->
 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.inga.dao" />
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
     <property name="annotationClass" value="com.inga.utils.mybatis.MyBatisDao"/>
 </bean>

下面是MyBatisDao的源码。mybatis

package com.inga.utils.mybatis;

import org.springframework.stereotype.Component;

import java.lang.annotation.*;

/**
 * Created by abing on 2015/11/18.
 */

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Component
public @interface MyBatisDao {
    /**
     * The value may indicate a suggestion for a logical component name,
     * to be turned into a Spring bean in case of an autodetected component.
     * @return the suggested component name, if any
     */
    String value() default "";
}

查看mybatis的源码。知道有这个方式。在jeesite中看到了以下使用方式。进行了测试。彻底能够使用。app



具体的项目源码在oscchina中有。测试

连接以下:http://git.oschina.net/inga/ManSys

相关文章
相关标签/搜索