在咱们使用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中有。测试