1.配置文件作用
spring相关
applicationContext.xml
合并以下三个配置文件
spring-mapper.xml
关联数据库配置文件db.properties
数据库连接池配置
SqlSessionFactory
扫描包:mapper
spring-mvc.xml
注解驱动
静态资源过滤
扫描包:controller
视图解析器
spring-service.xml
扫描包:service
注册新的业务实现类到容器
声明式事务配置
mybatis相关
db.properties
配置数据库的driver,url,username,password
mybatis-config.xml
日志输出SQL语句执行情况排错
别名管理
注册mapper
PojoMapper.xml
SQL语句实现mapper接口
2.修改配置文件
- 修改pom.xml,增删依赖
- 修改db.properties的数据库名称
- 修改mybatis-config.xml,注册mapper接口到mybatis
- 修改spring-service.xml,注册业务类到spring容器
3.SSM整合mybatis-plus
3.1 修改依赖
删除mybatis和mybatis-spring,添加mybatis-plus
3.2 修改spring-mapper.xml
修改SqlSessionFactory的class属性值为MybatisSqlSessionFactoryBean
3.3 删除PojoMapper.xml(有复杂业务可不删)
3.4 mapper接口继承BaseMapper< T >,删除所有方法
3.5 service接口中自定义接口方法
3.6 service接口实现类调用mapper接口中继承的BaseMapper方法,其中有基本的CRUD
3.7 测试
由applicationContext.xml获得spring定制容器context,在容器中获得service实现类的实例,调用实例方法进行测试
4.注解优化
4.1 mapper注册
使用@Repository
4.2 service实现类注册
使用@Service 使用@Resource注入service实现类的接口实例
5.配置文件优化
- 合并spring-mapper.xml,spring-mvc.xml,spring-service.xml到applicationContext.xml,该文件在以后项目中基本不需要更改,最多更改注解扫描包的路径
- db.properties中数据库的名称一般需要修改
- mybatis-config.xml可有可无
6. 使用mybatis-plus后整体项目如下
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:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:component-scan base-package="com.hao.service,com.hao.controller"/>
<context:property-placeholder location="classpath:db.properties"/>
<mvc:annotation-driven/>
<mvc:default-servlet-handler/>
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
destroy-method="close" lazy-init="false">
<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="initialSize" value="1"/>
<property name="maxActive" value="50"/>
<property name="maxWait" value="30000"/>
<property name="filters" value="stat,wall"/>
<property name="timeBetweenEvictionRunsMillis" value="3000"/>
<property name="minEvictableIdleTimeMillis" value="300000"/>
<property name="validationQuery" value="SELECT 'x'"/>
<property name="testWhileIdle" value="true"/>
<property name="testOnBorrow" value="false"/>
<property name="testOnReturn" value="false"/>
<property name="poolPreparedStatements" value="true"/>
<property name="maxPoolPreparedStatementPerConnectionSize"
value="20"/>
</bean>
<bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
<property name="basePackage" value="com.hao.mapper"/>
</bean>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
</beans>
|