先将Spring和Mybatis整合
1.加入 mybatis 的 jar 包和配置文件: 实际上需要配置的就是 settings 的部分。
<?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> <!-- settings标签可以设置多个属性值 --> <settings> <!-- setting标签负责每一个属性的设置 --> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> </configuration>
2. 加入 Spring 的 jar 包和配置文件
之前是在 mybatis-config.xml 获取 sqlSessionFactory 和扫描 mapper 接口
但是现在 mybatis-config.xml 只有 settings
所以在 bean.xml 中配置获得 sqlSessionFactory 和扫描 mapper 接口
Spring具体配置参见上篇《Spring+SpringMVC的整合》
<context:component-scan base-package="com.neuedu"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/> </context:component-scan> <!-- 加载外部属性文件 --> <context:property-placeholder location="classpath:jdbc.properties"/> <!-- 配置C3P0 数据源 --> <bean id="comboPooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="user" value="${jdbc.username}"></property> <property name="password" value="${jdbc.password}"></property> <property name="driverClass" value="${jdbc.driver}"></property> <property name="jdbcUrl" value="${jdbc.url}"></property> </bean> <!-- 配置事务管理器 --> <bean id="dataSourceTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="comboPooledDataSource"></property> </bean> <!-- 开启基于注解的事务 --> <tx:annotation-driven transaction-manager="dataSourceTransactionManager"/> <!-- 配置sqlSessionFactory --> <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="comboPooledDataSource"></property> <property name="configLocation" value="classpath:mybatis-config.xml"></property> </bean> <!-- 批量扫描mapper接口包 --> <bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.neuedu.sm.mapper"></property> </bean>
3.Test 测试
public class TestEmployeeMapper { private ApplicationContext ioc = new ClassPathXmlApplicationContext("bean.xml"); @Test public void test() { EmployeeMapper bean = ioc.getBean(EmployeeMapper.class); Employee employee = bean.getEmpById(1); System.out.println(employee); } }
以上Spring+Mybatis的配置基本完毕
将 SpringMVC整合到上面的项目中
1.配置SpringMVC 配置文件
<context:component-scan base-package="com.neuedu" use-default-filters="false"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/> </context:component-scan> <!-- 配置视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"></property> <property name="suffix" value=".jsp"></property> </bean> <!-- 处理静态资源 --> <mvc:default-servlet-handler/> <mvc:annotation-driven/>
2.创建相应的Controller、Service
3.在Controller层获取页面传来的数据,调用Service层方法【SpringMVC】
Service层调用Mapper接口,【Mybatis】
Mapper接口中有相应的方法,与sql映射文件相对应【Mybatis】