Intellij IDEA 搭建Spring MVC & MyBatis开发环境
IDEA搭建Spring MVC&MyBatis开发环境IDEA搭建Spring MVCMyBatis开发环境mybatis-springjar提供的整合APImybatis-spring.jar提供的整合APISqlSessionFactoryBean-为整合提供SqlSession对象资源,mybatis最重要的就是SqlSession和SqlSessionFactory对象,只有获取这
·
IDEA搭建Spring MVC&MyBatis开发环境
mybatis-spring.jar提供的整合API
- SqlSessionFactoryBean
-为整合提供SqlSession对象资源,mybatis最重要的就是SqlSession和SqlSessionFactory对象,只有获取这样的两个对象才能够对数据库资源进行操作。 - MapperFactoryBean
-根据指定Mapper接口生成Bean实例,在配置文件中可配置。 - 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>
更多推荐
已为社区贡献1条内容
所有评论(0)