Spring+SpringMVC+MyBatis的整合
1. 在pom.xml中导入所需依赖
< dependencies>
< dependency>
< groupId> junit</ groupId>
< artifactId> junit</ artifactId>
< version> 4.11</ version>
< scope> test</ scope>
</ dependency>
< dependency>
< groupId> org.springframework</ groupId>
< artifactId> spring-beans</ artifactId>
< version> 5.2.5.RELEASE</ version>
</ dependency>
< dependency>
< groupId> org.springframework</ groupId>
< artifactId> spring-context-support</ artifactId>
< version> 5.2.5.RELEASE</ version>
</ dependency>
< dependency>
< groupId> org.springframework</ groupId>
< artifactId> spring-webmvc</ artifactId>
< version> 5.2.5.RELEASE</ version>
</ dependency>
< dependency>
< groupId> org.springframework</ groupId>
< artifactId> spring-jdbc</ artifactId>
< version> 5.2.5.RELEASE</ version>
</ dependency>
< dependency>
< groupId> org.springframework</ groupId>
< artifactId> spring-tx</ artifactId>
< version> 5.2.5.RELEASE</ version>
</ dependency>
< dependency>
< groupId> org.springframework</ groupId>
< artifactId> spring-test</ artifactId>
< version> 5.2.5.RELEASE</ version>
</ dependency>
< dependency>
< groupId> com.github.pagehelper</ groupId>
< artifactId> pagehelper</ artifactId>
< version> 5.1.8</ version>
</ dependency>
< dependency>
< groupId> org.mybatis</ groupId>
< artifactId> mybatis-spring</ artifactId>
< version> 1.3.2</ version>
</ dependency>
< dependency>
< groupId> org.mybatis.generator</ groupId>
< artifactId> mybatis-generator-core</ artifactId>
< version> 1.3.7</ version>
</ dependency>
< dependency>
< groupId> org.mybatis</ groupId>
< artifactId> mybatis</ artifactId>
< version> 3.4.6</ version>
</ dependency>
< dependency>
< groupId> com.alibaba</ groupId>
< artifactId> druid</ artifactId>
< version> 1.1.20</ version>
</ dependency>
< dependency>
< groupId> mysql</ groupId>
< artifactId> mysql-connector-java</ artifactId>
< version> 5.1.30</ version>
</ dependency>
< dependency>
< groupId> javax.servlet</ groupId>
< artifactId> servlet-api</ artifactId>
< version> 2.5</ version>
</ dependency>
< dependency>
< groupId> com.fasterxml.jackson.core</ groupId>
< artifactId> jackson-databind</ artifactId>
< version> 2.9.9.3</ version>
</ dependency>
< dependency>
< groupId> commons-io</ groupId>
< artifactId> commons-io</ artifactId>
< version> 2.6</ version>
</ dependency>
< dependency>
< groupId> commons-fileupload</ groupId>
< artifactId> commons-fileupload</ artifactId>
< version> 1.4</ version>
</ dependency>
< dependency>
< groupId> org.slf4j</ groupId>
< artifactId> slf4j-simple</ artifactId>
< version> 1.7.30</ version>
</ dependency>
</ dependencies>
2. springMVC的配置
<?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/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd" >
< context: component-scan base-package = " ssm.integration" use-default-filters = " false" >
< context: include-filter type = " annotation" expression = " org.springframework.stereotype.Controller" />
</ context: component-scan>
< bean class = " org.springframework.web.servlet.view.InternalResourceViewResolver" >
< property name = " prefix" value = " /WEB-INF/views/" />
< property name = " suffix" value = " .html" />
</ bean>
< mvc: resources mapping = " /layui/**" location = " /WEB-INF/layui/" />
< mvc: default-servlet-handler/>
< mvc: annotation-driven />
< bean id = " multipartResolver" class = " org.springframework.web.multipart.commons.CommonsMultipartResolver" >
< property name = " defaultEncoding" value = " UTF-8" />
< property name = " maxUploadSize" value = " 5242880" />
< property name = " maxInMemorySize" value = " 4096" />
</ bean>
</ beans>
3. db.properties的配置
jdbc.driver=com.mysql.jdbc.Driver
jdbc.jdbcUrl=jdbc:mysql://localhost:3306/数据库名称
jdbc.username=root
jdbc.password=
jdbc.maxActive=500
jdbc.maxIdle=1000
4. 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: aop= " http://www.springframework.org/schema/aop"
xmlns: tx= " http://www.springframework.org/schema/tx"
xsi: schemaLocation= " http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd" >
< context: component-scan base-package = " ssm.integration" >
< context: exclude-filter type = " annotation" expression = " org.springframework.stereotype.Controller" />
</ context: component-scan>
< context: property-placeholder location = " classpath:db.properties" />
< bean id = " pooledDataSource" class = " com.alibaba.druid.pool.DruidDataSource" >
< property name = " driverClassName" value = " ${jdbc.driver}" />
< property name = " url" value = " ${jdbc.jdbcUrl}" />
< property name = " username" value = " ${jdbc.username}" />
< property name = " password" value = " ${jdbc.password}" />
</ bean>
< bean id = " sqlSessionFactoryBean" class = " org.mybatis.spring.SqlSessionFactoryBean" >
< property name = " configLocation" value = " classpath:mybatis-config.xml" />
< property name = " dataSource" ref = " pooledDataSource" />
< property name = " mapperLocations" value = " classpath:mapper/*.xml" />
</ bean>
< bean class = " org.mybatis.spring.mapper.MapperScannerConfigurer" >
< property name = " basePackage" value = " ssm.integration.dao" />
</ bean>
< bean id = " sqlSession" class = " org.mybatis.spring.SqlSessionTemplate" >
< constructor-arg name = " sqlSessionFactory" ref = " sqlSessionFactoryBean" />
< constructor-arg name = " executorType" value = " BATCH" />
</ bean>
< bean id = " transactionManager" class = " org.springframework.jdbc.datasource.DataSourceTransactionManager" >
< property name = " dataSource" ref = " pooledDataSource" />
</ bean>
< tx: annotation-driven transaction-manager = " transactionManager" />
</ beans>
5. mybatis-config.xml的配置
<?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>
< setting name = " mapUnderscoreToCamelCase" value = " true" />
< setting name = " logImpl" value = " STDOUT_LOGGING" />
</ settings>
< typeAliases>
< package name = " ssm.integration.pojo" />
</ typeAliases>
< plugins>
< plugin interceptor = " com.github.pagehelper.PageInterceptor" >
< property name = " reasonable" value = " true" />
</ plugin>
</ plugins>
</ configuration>
6. web.xml的配置
<?xml version="1.0" encoding="UTF-8"?>
< web-app id = " WebApp_ID" version = " 2.5" xmlns = " http://java.sun.com/xml/ns/javaee"
xmlns: xsi= " http://www.w3.org/2001/XMLSchema-instance"
xsi: schemaLocation= " http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" >
< display-name> ssm-crud</ display-name>
< welcome-file-list>
< welcome-file> index.html</ welcome-file>
< welcome-file> index.htm</ welcome-file>
< welcome-file> index.jsp</ welcome-file>
< welcome-file> default.html</ welcome-file>
< welcome-file> default.htm</ welcome-file>
< welcome-file> default.jsp</ welcome-file>
</ welcome-file-list>
< context-param>
< param-name> contextConfigLocation</ param-name>
< param-value> classpath:applicationContext.xml</ param-value>
</ context-param>
< listener>
< listener-class> org.springframework.web.context.ContextLoaderListener</ listener-class>
</ listener>
< servlet>
< servlet-name> springDispatcherServlet</ servlet-name>
< servlet-class> org.springframework.web.servlet.DispatcherServlet</ servlet-class>
< init-param>
< param-name> contextConfigLocation</ param-name>
< param-value> classpath:springmvc.xml</ param-value>
</ init-param>
< load-on-startup> 1</ load-on-startup>
</ servlet>
< servlet-mapping>
< servlet-name> springDispatcherServlet</ servlet-name>
< url-pattern> /</ url-pattern>
</ servlet-mapping>
< filter>
< filter-name> CharacterEncodingFilter</ filter-name>
< filter-class> org.springframework.web.filter.CharacterEncodingFilter</ filter-class>
< init-param>
< param-name> encoding</ param-name>
< param-value> UTF-8</ param-value>
</ init-param>
< init-param>
< param-name> forceRequestEncoding</ param-name>
< param-value> true</ param-value>
</ init-param>
< init-param>
< param-name> forceResponseEncoding</ param-name>
< param-value> true</ param-value>
</ init-param>
</ filter>
< filter-mapping>
< filter-name> CharacterEncodingFilter</ filter-name>
< url-pattern> /*</ url-pattern>
</ filter-mapping>
</ web-app>
7. mbg.xml的配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
< generatorConfiguration>
< context id = " DB2Tables" targetRuntime = " MyBatis3" >
< commentGenerator>
< property name = " suppressAllComments" value = " true" />
</ commentGenerator>
< jdbcConnection
driverClass = " com.mysql.jdbc.Driver"
connectionURL = " jdbc:mysql://localhost:3306/数据库名"
userId = " root"
password = " " >
</ jdbcConnection>
< javaTypeResolver >
< property name = " forceBigDecimals" value = " false" />
</ javaTypeResolver>
< javaModelGenerator
targetPackage = " ssm.integration.pojo"
targetProject = " .\src\main\java" >
< property name = " enableSubPackages" value = " true" />
< property name = " trimStrings" value = " true" />
</ javaModelGenerator>
< sqlMapGenerator
targetPackage = " mapper"
targetProject = " .\src\main\resources" >
< property name = " enableSubPackages" value = " true" />
</ sqlMapGenerator>
< javaClientGenerator type = " XMLMAPPER"
targetPackage = " ssm.integration.dao"
targetProject = " .\src\main\java" >
< property name = " enableSubPackages" value = " true" />
</ javaClientGenerator>
< table tableName = " 数据库表名" domainObjectName = " 实体类名" />
</ context>
</ generatorConfiguration>
8. mbg.xml配置的使用,在test包下新建一个MBGTest类
package ssm. integration. test;
import java. io. File;
import java. util. ArrayList;
import java. util. List;
import org. mybatis. generator. api. MyBatisGenerator;
import org. mybatis. generator. config. Configuration;
import org. mybatis. generator. config. xml. ConfigurationParser;
import org. mybatis. generator. internal. DefaultShellCallback;
public class MBGTest {
public static void main ( String[ ] args) throws Exception {
List< String> warnings = new ArrayList < > ( ) ;
boolean overwrite = true ;
File configFile = new File ( "mbg.xml" ) ;
ConfigurationParser cp = new ConfigurationParser ( warnings) ;
Configuration config = cp. parseConfiguration ( configFile) ;
DefaultShellCallback callback = new DefaultShellCallback ( overwrite) ;
MyBatisGenerator myBatisGenerator = new MyBatisGenerator ( config, callback, warnings) ;
myBatisGenerator. generate ( null) ;
}
}