http://blog.csdn.net/qq598535550/article/details/51703190

二、Spring整合mybatis其实是在mybatis的基础上实现Spring框架

Spring学习笔记:Spring整合Mybatis(mybatis-spring.jar)(二:mybatis整合spring)

    1、依赖的jar包,maven引入依赖:

 

<dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.3</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

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

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.43</version>
        </dependency>
        <!--****************************************************-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>4.2.3.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.2.0.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.2.2.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>4.2.2.RELEASE</version>
        </dependency>

        <!--织入的包-->
        <dependency>
            <groupId> org.aspectj</groupId >
            <artifactId> aspectjweaver</artifactId >
            <version> 1.8.7</version>
        </dependency>

        <!--添加数据源-->
        <!--spring JDBCTemplate-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.2.0.RELEASE</version>
        </dependency>
        <!--druid-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.18</version>
        </dependency>
        <!--dbcp 数据源-->
        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.4</version>
        </dependency>
        <!--c3p0-->
        <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.5.2</version>
        </dependency>

        <!--spring整合mybatis-->
        <!--Mybatis+Spring整合-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.2.0</version>
        </dependency>

  简化依赖:webmvc

  Spring整合Myabtis依赖的:

<!--spring整合mybatis-->
        <!--Mybatis+Spring整合-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.2.0</version>
        </dependency>

  2、编写核心配置文件(mybatis的许多功能都可以使用Spring来完成)

  mybatis-config.xml的很多功能可以移除

<?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>
        <package name="cn.tengyu.entity"/>
    </typeAliases>
    <mappers>
        <package name="cn.tengyu.dao"/>
    </mappers>
</configuration>

  mapper.xml不用修改

<?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="cn.tengyu.dao.EmpMapper">
    <cache eviction="FIFO" flushInterval="60000" size="512" readOnly="true"/>
    <!--查询记录数-->
    <select id="count" resultType="int">
        SELECT count(1) AS count FROM emp
    </select>
    <!--查询列表-->
    <select id="findAll" resultType="Emp">
        SELECT <include refid="empColumn"/> FROM emp
    </select>
    <sql id="empColumn">
        empno,empname,deptno
    </sql>
    <!--方法(1)-->
    <!--<resultMap >
        <id property="deptno" column="deptno"/>
        <result property="deptname" column="deptname"/>
    </resultMap>
    <resultMap >
        <id property="empno" column="empno"/>
        <result property="empname" column="empname"/>
        <association property="dept" javaType="Dept" resultMap="DeptResult"/>
    </resultMap>
    <select >
        SELECT emp.*,dept.* FROM emp,dept WHERE emp.deptno=dept.deptno LIMIT #{startIndex},#{endIndex}
    </select>-->
    <!--方法(2)-->
    <!--<resultMap >
        <id property="empno" column="empno"/>
        <result property="empname" column="empname"/>
        <association property="dept" javaType="Dept">
            <id property="deptno" column="deptno"/>
            <result property="deptname" column="deptname"/>
        </association>
    </resultMap>
    <select >
        SELECT e.empno,e.empname,d.deptno,d.deptname FROM emp e,dept d WHERE e.deptno=d.deptno LIMIT #{startIndex},#{endIndex}
    </select>-->
    <!--方法(3)-->
    <resultMap id="EmpResult" type="Emp">
        <id property="empno" column="empno"/>
        <result property="empname" column="empname"/>
        <association property="dept" javaType="Dept">
            <id property="deptno" column="deptno"/>
            <result property="deptname" column="deptname"/>
        </association>
    </resultMap>
    <select id="findByIndex" resultMap="EmpResult">
        SELECT e.empno,e.empname,d.deptno,d.deptname FROM emp AS e,dept AS d WHERE e.deptno=d.deptno LIMIT #{startIndex},#{endIndex}
    </select>
</mapper>
View Code

相关文章: