Spring整合MyBatis(Maven+spring+MyBatis+mysql实践附demo)

Spring整合MyBatis(Maven+spring+MyBatis+mysql)

前言:
接下来我们的项目在我上一篇 Maven+mybatis+mysql项目实践 的基础上进行修改,利用Spring对MyBatis进行整合。
( 文章末尾附上此次实践的demo )


一、回顾 Maven+mybatis+mysql 项目

1、新建maven项目,进行相应配置

参考:http://blog.csdn.net/kevinbetterq/article/details/77967856

2、mybatis访问mysql
3、分析

在上面的项目中,我们对数据库的一些配置和启动是在 MyBatisCfg.xml 中指明的。这样对有些映射的注册较为麻烦,接下来我们进行spring的整合

二、Spring与MyBatis整合

1、首先,修改pom.xml

添加以下spring的依赖:

        <!-- 添加Spring-core包 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.1.4.RELEASE</version>
        </dependency>
        <!-- 添加spring-context包 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.1.4.RELEASE</version>
        </dependency>
        <!-- 添加spring-tx包 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>4.1.4.RELEASE</version>
        </dependency>
        <!-- 添加spring-jdbc包 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.1.4.RELEASE</version>
        </dependency>
        <!-- 为了方便进行单元测试,添加spring-test包 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>4.1.4.RELEASE</version>
        </dependency>
        <!--添加spring-web包 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.1.4.RELEASE</version>
        </dependency>
        <!-- 添加spring-webmvc -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.1.4.RELEASE</version>
        </dependency>
        <!--添加aspectjweaver包 -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.8.5</version>
        </dependency>
        <!-- 添加mybatis与Spring整合的核心包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.0</version>
        </dependency>
2、弃用MyBatisCfg.xml,新增 ApplicationContext.xml

作为Spring与MyBatis的配置:
这里写图片描述
ApplicationContext.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:p="http://www.springframework.org/schema/p"
    xmlns:aop="http://www.springframework.org/schema/aop" 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-4.3.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">

    <!-- 引入db.properties属性文件 -->
    <context:property-placeholder location="classpath:db.properties" />

    <!--定义一个jdbc数据源,创建一个驱动管理数据源的bean -->
    <bean id="jdbcDataSource"
            class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="${jdbc.driver}" />
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
    </bean>

    <!--创建一个sql会话工厂bean,指定数据源 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 指定数据源 -->
        <property name="dataSource" ref="jdbcDataSource" />
        <!--类型别名包,默认引入com.lmei.entity下的所有类 -->
        <property name="typeAliasesPackage" value="com.qwk.entity"></property>
        <!--指定sql映射xml文件的路径 -->
        <property name="mapperLocations"
            value="classpath:com/qwk/mapper/*Mapper.xml"></property>
    </bean>

    <!--自动扫描映射接口-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 指定sql会话工厂,在上面配置过的 -->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
        <!-- 指定基础包,即自动扫描com.lmei.dao这个包下的所有接口类 -->
        <property name="basePackage" value="com.qwk.dao"></property>
    </bean>


    <!--自动扫描组件 -->
    <context:component-scan base-package="com.qwk">
        <context:exclude-filter type="aspectj" expression="com.qwk.dao.*"/>
    </context:component-scan>
    <aop:aspectj-autoproxy proxy-target-class="true"></aop:aspectj-autoproxy>
</beans>

注意,因为db.properties中的 username 可能会冲突,所以进行一下修改,也可以看到上面的name=”username” value=”${jdbc.username}”,我们也是换成了jdbc.username。

db.properties:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
jdbc.username=root
jdbc.password=123456
3、添加测试类 TestMyBasticSpring.java
package com.qwk.test;

import static org.junit.Assert.*;

import java.util.List;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.qwk.dao.BookDaoI;
import com.qwk.entity.Book;

public class TestMyBatisSpring {
    @Test
    public void test(){
         //初始化容器
        ApplicationContext ctx=new ClassPathXmlApplicationContext("ApplicationContext.xml");
        //获得bean
       /* BookDaoI bookDao = ctx.getBean("bookDao",BookDaoI.class);*/
        BookDaoI bookDao = ctx.getBean(BookDaoI.class);
        //访问数据库
        List<Book> books = bookDao.getAllBook();
        for (Book book : books) {
            System.out.println(book.getBookName());
        }
        assertNotNull(books);
    }
}

项目右键->Run As->Junit Test
这里写图片描述


这样,Maven+spring+MyBatis+mysql的项目整合就完成了。
Spring的添加其实较为简单,这里给出一个demo,大家可以拿来参考参考:
https://github.com/KevinBetterQ/SpringMVC_Mybatis/tree/0a59f22d4bb43e1554b93ad7cfd54cf3795c962d

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值