IDEA搭建Spring MVC&MyBatis开发环境

mybatis-spring.jar提供的整合API

  1. SqlSessionFactoryBean
    -为整合提供SqlSession对象资源,mybatis最重要的就是SqlSession和SqlSessionFactory对象,只有获取这样的两个对象才能够对数据库资源进行操作。
  2. MapperFactoryBean
    -根据指定Mapper接口生成Bean实例,在配置文件中可配置。
  3. MapperScannerConfigurer
    -根据指定包批量扫描Mapper接口并生成实例,同样在applicationConfig.xml文件中配置。

SqlSessionFactoryBean在applicationConfig.xml中定义的格式如下:

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--dataSource属性指定要用到的连接池-->
        <property name="dataSource" ref="dataSource"/>
        <!--configLocation属性指定mybatis的核心配置文件-->
        <property name="configLocation" value="classpath:com/springapp/config/applicationContext.xml"/>
        <!-- 所有配置的mapper文件 -->
        <property name="mapperLocations" value="classpath*:com/springapp/config/mapper.xml" />
    </bean>

MapperFactoryBean的作用就是根据Mapper接口获取我们想要的Mapper对象,它封装了原有的session.getMapper()功能实现。在定义MapperFactoryBean时,需要注入以下两个属性:一个是SqlSessionFactoryBean对象,用于提供SqlSession;一个是要返回Mappr对象的Mapper的Mapper接口。

<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
        <!--sqlSessionFactory属性指定要用到的SqlSessionFactory实例-->
        <property name="sqlSessionFactory" ref="sqlSessionFactory" />
        <!--mapperInterface属性指定映射器接口,用于实现此接口并生成映射器对象-->
        <property name="mapperInterface" value="com.springapp.*"/>
    </bean>

spring 配置

新建module构建spring MVC之后,会在WEB-INF下自动生成一个*dispatcher.xml,先只需要子啊其中配置controller扫描就行:

<context:component-scan base-package="com.springapp.controller"/>

然后在resources资源目录下新建spring整合mybatis的配置文件,可以叫做applicationContext.xml,具体配置三个方面:
1)数据源的配置

<context:property-placeholder location="classpath:jdbc.properties"/>

引用jdbc.properties

##JDBC Global Setting
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test
jdbc.username=root
jdbc.password=123456


##DataSource Global Setting
jdbc.pool.maxActive=190
jdbc.pool.maxIdle=20

#配置获取连接等待超时的时间
jdbc.pool.maxWait=6000

2)数据库连接池的配置

<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close">
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>

        <property name="maxActive" value="${jdbc.pool.maxActive}"/>
        <property name="maxIdle" value="${jdbc.pool.maxIdle}"/>
        <property name="minIdle" value="0"/>
        <!-- 配置获取连接等待超时的时间 -->
        <property name="maxWait" value="${jdbc.pool.maxWait}"/>
        <property name="defaultAutoCommit" value="false"/>
    </bean>

3)创建sqlSessionFactory对象映射

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--dataSource属性指定要用到的连接池-->
        <property name="dataSource" ref="dataSource"/>
        <!--configLocation属性指定mybatis的核心配置文件-->
        <property name="configLocation" value="classpath:mybatisConfig.xml"/>
        <!-- 扫描entity包,使用别名 -->
        <property name="typeAliasesPackage" value="com.springapp.entity"/>
        <!-- 所有配置的mapper文件 -->
        <property name="mapperLocations" value="classpath:mapper
/*Mapper.xml" />
    </bean>

还有就是配置dao接口扫描


<!-- spring与mybatis整合配置,扫描所有dao,动态实现dao接口,注入到spring容器中 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 注入sqlSessionFactory -->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        <!-- 给出dao接口文件包的扫描 -->
        <property name="basePackage" value="com.springapp.dao"/>
    </bean>
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐