Spring+SpringMVC+MyBatis整合应用

1、Spring与MyBatis整合

    Spring与MyBatis整合需要引入一个mybatis-spring.jar 文件包,此整合包由MyBatis提供,此包提供以下与整合相关的API

    1)SqlSessionFactoryBean

为整合应用提供SqlSession对象,在spring.xml中配置

<!-- 定义SqlSessionFactoryBean组件 -->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 指定数据源 -->
<property name="dataSource" ref="ds"/>
<!-- 指定映射文件 -->
<property name="mapperLocations" value="classpath:com/xms/entity/mapper/*.xml"/>
</bean>

    2)MapperScannerConfigurer

根据指定包批量扫描Mapper接口生成对应的实例

在定义MapperScannerConfigurer时,只需要指定一个扫描包即可,basePackage用于指定Mapper接口所在的包,在这个包及其子包中的Mapper接口都将被扫描到,生成对应的对象,多个包之间可以使用逗号或分号进行分割

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

<!-- 指定扫描包 -->
<property name="basePackage" value=""/>

<!-- 指定SqlSessionFactory -->
<property name="sqlSessionFactory" ref=""/>

注意:sqlSessionFactory属性可以不用指定,会以autowired方式自动注入

</bean>

如果指定某个包并不完全是我们定义的Mapper接口,此时可以使用MapperScannerConfigurer的两个属性缩小接口实例化的范围,一个annotationClass,一个是markerInterface

annotationClass:用于指定一个注解标记,当指定了注解标记属性时,MapperScannerConfigurer将只实例化使用了annotationClass注解标记的接口

markerInterface:用于指定一个接口,当指定了接口属性时,MapperScannerConfigurer将只实例化继承自markerInterface接口的接口

2、Spring+Spring MVC+MyBatis整合应用

    1)搭建Spring,SpringMVC和MyBatis环境

* 创建一个WEB工程

* 添加MyBatis相关技术环境

    引入数据库驱动包和DBCP连接池开发包

    引入MyBatis开发包

* 添加Spring,SpringMVC相关技术环境

    引入Spring ioc,jdbc,tx,aop开发包

    引入Spring web,webmvc开发包

    在src下添加spring.xml配置文件

    在web.xml中配置DispatcherServlet前端控制器和中文乱码处理过滤器CharacterEncodingFilter

    引入MyBatis和Spring整合开发包mybatis-spring.jar

    2)基于MapperScannerConfigurer方式整合MyBatis

*根据数据表编写实体类

*编写Mapper映射文件,在XML中添加SQL操作的定义

*编写Mapper接口,定义SQL操作方法

*在Spring配置文件中定义以下Bean组件

     DataSource、SqlSessionFactoryBean、MapperScannerConfigurer

    3)编写和配置SpringMVC的主要组件(Controller,handlerMapping,ViewResolver)

*编写Controller和请求处理方法

*配置<mvc:annotation-driven/>,支持@RequestMapping

*配置Controller组件

     开启注解扫描,将Controller组件扫描到Spring容器中

     需要DAO时采用注入方式

     在请求处理方法上使用@RequestMapping指定对应请求

    4)编写JSP视图组件,利用JSTL标签和EL表达式显示数据

          引入JSTL开发包(jstl.jar,standard.jar)

原文地址:https://www.cnblogs.com/xslzwm/p/9605507.html