首先简单的介绍下MyBatis,MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
  我是在spring框架中使用maven来管理程序的,若是需要在项目中添加MyBatis,首先需要在pom.xml文件中添加以下的依赖:

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.6</version>
</dependency>

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>1.3.2</version>
</dependency>

  下面是针对Mybatis进行一些配置,我在spring的配置文件中以bean的方式添加了mybatis的一些配置。

<bean id="testSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost:3306/testdatabase" />
    <property name="username" value="root" />
    <property name="password" value="19930921" />
    <!-- 初始化连接大小 -->
    <property name="initialSize" value="5"></property>
    <!-- 连接池最大空闲 -->
    <property name="maxIdle" value="1800"></property>
    <!-- 获取连接最大等待时间 -->
    <property name="maxWaitMillis" value="1000"></property>
</bean>


<bean id="sqlSessionFactory" name="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <!--dataource-->
    <property name="dataSource" ref="testSource"/>
    <!--Mapper files-->
    <property name="mapperLocations" value="classpath:test-sqlmap/*Mapper.xml"/>
    <property name="typeAliasesPackage" value="com.test.controller.bean" />
</bean>

<!--<bean id="taskMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">-->
    <!--<property name="mapperInterface" value="com.test.controller.mapper.taskMapper" />-->
    <!--<property name="sqlSessionFactory" ref="sqlSessionFactory" />-->
<!--</bean>-->

<!-- mapper接口namepspace绑定方式 -->
<bean id="mapperScannerConfiguration" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.test.controller.mapper" /><!-- 多个使用逗号分隔 -->
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>

  然后依次对上述配置代码进行解释。
  上述配置代码中还有如下内容:

<bean id="sqlSessionFactory" name="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <!--dataource-->
    <property name="dataSource" ref="testSource"/>
    <!--Mapper files-->
    <property name="mapperLocations" value="classpath:test-sqlmap/*Mapper.xml"/>
    <property name="typeAliasesPackage" value="com.test.controller.bean" />
</bean>

  在 MyBatis-Spring 中,这个bean是用于创建SqlSessionFactory的,SqlSessionFactory用来生产一个SqlSession,而qlSession对象负责对每个mapper文件进行映射,完成应用程序与数据持久层之间的操作。对于每个SqlSessionFactory,都需要一个数据映射器类,用来维护和设置与数据库的连接,在这边我使用了BasicDataSource这个数据库映射器类,它支持数据库连接池,并且支持设置相关属性:最大链接数、最小连接数、初始化链接数、最大等待时间等属性,我在里面设置了数据库的url、数据库连接驱动类、数据库用户名、密码等属性。在sqlSessionFactory这个bean里我还设置了另外两个属性,mapperLocations和typeAliasesPackage。其中mapperLocations属性用来确定写的mybatis映射xml文件的路径,在这个路径下的xml映射文件都能够被自动识别;typeAliasesPackage用来确定和数据库相对应的DO类的路径。最后还有一个mapperScannerConfiguration,它主要是依靠里面的basePackage属性来确定和xml映射文件相匹配的mapper接口的路径。