1.基本概念

Spring
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

SpringMVC
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

MyBatis
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
2.整合思路


①、表现层,也就是 Controller,由 SpringMVC 来控制,而SpringMVC 是Spring 的一个模块,故不需要整合。
②、业务层,也就是 service,通常由 Spring 来管理 service 接口,我们会使用 xml 配置的方式来将 service 接口配置到 spring 配置文件中。而且事务控制一般也是在 service 层进行配置。
③、持久层,也就是 dao 层,而且包括实体类,由 MyBatis 来管理,通过 spring 来管理 mapper 接口,使用mapper的扫描器自动扫描mapper接口在spring中进行注册。
很明显,spring 在三大框架的整合中占据至关重要的地位,类似于一个大管家,将 MyBatis 和 SpringMVC 揉合在一起。
2.1准备测试数据
DROP TABLE IF EXISTS t_user;
CREATE TABLE t_user (
userId int(11) NOT NULL AUTO_INCREMENT,
userLoginName varchar(10) DEFAULT NULL,
userPwd varchar(10) DEFAULT NULL,
userName varchar(15) DEFAULT NULL,
state int(11) DEFAULT NULL COMMENT ‘state 1启用 0冻结’,
createTime date DEFAULT NULL,
delState int(11) DEFAULT NULL COMMENT ‘delState 删除状态1 删除 0未删除’,
PRIMARY KEY (userId)
) ENGINE=InnoDB AUTO_INCREMENT=110 DEFAULT CHARSET=utf8;


– Records of t_user


INSERT INTO t_user VALUES (‘1’, ‘luoxian’, ‘123456’, ‘杨晓林’, ‘1’, ‘2018-07-09’, ‘0’);
INSERT INTO t_user VALUES (‘2’, ‘aaaddd’, ‘123456’, ‘是是是’, ‘1’, ‘2018-07-14’, ‘0’);
INSERT INTO t_user VALUES (‘3’, ‘qazwsx’, ‘qazwsx’, ‘吕杰’, ‘0’, ‘2018-09-05’, ‘1’);
INSERT INTO t_user VALUES (‘4’, ‘luoxianxin’, ‘123456’, ‘吕杰’, ‘1’, ‘2018-09-06’, ‘1’);
INSERT INTO t_user VALUES (‘8’, ‘zhangsan’, ‘324234’, ‘张三’, ‘1’, ‘2018-09-04’, ‘1’);
INSERT INTO t_user VALUES (‘9’, ‘lisi’, ‘1234567’, ‘小张’, ‘0’, ‘2018-09-26’, ‘0’);

2.2导入依赖

<properties><junit.version>4.12</junit.version><spring.version>4.3.8.RELEASE</spring.version><mybatis.version>3.4.5</mybatis.version><mybatis.spring.version>1.3.0</mybatis.spring.version><mysql.version>5.1.38</mysql.version><slf4j.version>1.6.4</slf4j.version><jackson.version>2.9.7</jackson.version><c3p0.version>0.9.5-pre10</c3p0.version><jstl.version>1.2</jstl.version><servlet-api.version>3.1.0</servlet-api.version><jsp-api.version>2.2.1</jsp-api.version><commons-lang3.version>3.3.2</commons-lang3.version><commons-io.version>1.3.2</commons-io.version>
</properties><dependencies><!-- 单元测试 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope></dependency><!-- Spring --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>${spring.version}</version></dependency><!-- Mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>${mybatis.spring.version}</version></dependency><!-- 通用Mapper --><dependency><groupId>com.github.abel533</groupId><artifactId>mapper</artifactId><version>2.3.4</version></dependency><!-- MySql --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${slf4j.version}</version></dependency><!-- Jackson Json处理工具包 --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>${jackson.version}</version></dependency><!-- c3p0数据源 --><dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>${c3p0.version}</version></dependency><!-- JSP相关 --><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>${jstl.version}</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>${servlet-api.version}</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>${jsp-api.version}</version><scope>provided</scope></dependency><!-- Apache工具组件 --><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>${commons-lang3.version}</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-io</artifactId><version>${commons-io.version}</version></dependency></dependencies><build><plugins><plugin><artifactId>maven-war-plugin</artifactId><configuration><version>3.1</version></configuration></plugin><!-- java编译插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>2.3.2</version><configuration><source>1.7</source><target>1.7</target><encoding>UTF-8</encoding></configuration></plugin></plugins>
</build>

2.3 新建db.properties

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/ssm?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=123

2.4 新建applicationContext.xml

<!--使用spring自带的占位符替换功能 -->
<beanclass="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><!-- 忽略没有找到的资源文件 --><property name="ignoreResourceNotFound" value="true" /><!-- 配置资源文件 --><property name="locations"><list><value>classpath:db.properties</value></list></property>
</bean><!--1.扫描包 -->
<context:component-scan base-package="com.ssm" /><!--2. 配置数据源 c3p0 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"destroy-method="close"><property name="driverClass" value="${jdbc.driverClass}" /><property name="jdbcUrl" value="${jdbc.jdbcUrl}" /><property name="user" value="${jdbc.user}" /><property name="password" value="${jdbc.password}" /><!-- 请求超时时间 --><property name="checkoutTimeout" value="30000" /><!-- 每60秒检查所有连接池中的空闲连接。默认值: 0,不检查 --><property name="idleConnectionTestPeriod" value="30" /><!-- 连接数据库连接池最大空闲时间 --><property name="maxIdleTime" value="30" /><!-- 连接池初始化连接数 --><property name="initialPoolSize" value="5" /><property name="minPoolSize" value="5" /><property name="maxPoolSize" value="20" /><!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。默认值: 3 --><property name="acquireIncrement" value="5" />
</bean><!--3.定义SqlSessionFactory -->
<bean class="org.mybatis.spring.SqlSessionFactoryBean"><property name="configLocation" value="classpath:mybatis-config.xml" /><property name="dataSource" ref="dataSource" /><!-- 自动扫描mapping.xml文件 --><property name="mapperLocations" value="classpath:com/ssm/mapper/*.xml"></property><property name="typeAliasesPackage" value="com.ssm.bean" />
</bean><!--4.定义Mapper接口的扫描器 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.ssm.mapper" />
</bean><!--5.定义事务管理器 -->
<bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" />
</bean><!-- 6.开启事务注解支持 -->
<tx:annotation-driven transaction-manager="transactionManager" />

3.5 新建日志文件log4j.properties

log4j.rootLogger=INFO,Console,File
#定义日志输出目的地为控制台
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
#可以灵活地指定日志输出格式,下面一行是指定具体的格式
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n
#文件大小到达指定尺寸的时候产生一个新的文件
log4j.appender.File = org.apache.log4j.RollingFileAppender
#指定输出目录
log4j.appender.File.File = logs/ssm.log
#定义文件最大大小
log4j.appender.File.MaxFileSize = 10MB  输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志
log4j.appender.File.Threshold = ALL
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n

3.6 新建实体类

public class User {
private int userId;
private String userLoginName;
private String userPwd;
private String userName;
private int state;
private String createTime;
private int delState;public User(String userLoginName, String userPwd) {super();this.userLoginName = userLoginName;this.userPwd = userPwd;
}public User(String userName, int state) {super();this.userName = userName;this.state = state;
}public User(int userId, String userLoginName, String userPwd, String userName, int state, String createTime, int delState) {super();this.userId = userId;this.userLoginName = userLoginName;this.userPwd = userPwd;this.userName = userName;this.state = state;this.createTime = createTime;this.delState = delState;
}public User() {super();
}public int getUserId() {return userId;
}public void setUserId(int userId) {this.userId = userId;
}public String getUserLoginName() {return userLoginName;
}public void setUserLoginName(String userLoginName) {this.userLoginName = userLoginName;
}public String getUserPwd() {return userPwd;
}public void setUserPwd(String userPwd) {this.userPwd = userPwd;
}public String getUserName() {return userName;
}public void setUserName(String userName) {this.userName = userName;
}public int getState() {return state;
}public void setState(int state) {this.state = state;
}public String getCreateTime() {return createTime;
}public void setCreateTime(String createTime) {this.createTime = createTime;
}public int getDelState() {return delState;
}public void setDelState(int delState) {this.delState = delState;
}@Override
public String toString() {return "User [userId=" + userId + ", userLoginName=" + userLoginName + ", userPwd=" + userPwd + ", userName=" + userName + ", state=" + state + ", createTime=" + createTime + ", delState="+ delState + "]";
}

}

3.7 新建Mapper层

//1.查询所有的用户
public interface UserMapper {
public List<User> findUsers();//2.新增用户
public int addUser(User u);

}

3.8 新建Mapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ssm.mapper.UserMapper"><select id="findUsers" resultType="User">select * from t_user</select><insert id="addUser">insert into t_user values(null,#{userLoginName},#{userPwd},#{userName},0,now(),0)</insert></mapper>

3.9 新建业务逻辑层
接口层

// 1.查询所有的用户
public interface UserService {
public List<User> findUsers();// 2.新增用户
public int addUser(User u);
}

接口层实现类

@Service
@Transactional
public class UserServiceImpl  implements UserService{@AutowiredUserMapper userMapper;@Transactional(readOnly=true)@Overridepublic List<User> findUsers() {return userMapper.findUsers();}@Overridepublic int addUser(User u) {return userMapper.addUser(u);}
}

3.10 新建控制层

@Controller
@RequestMapping("/user")
public class UserController {@AutowiredUserService userService;@RequestMapping("/list")public String list(Model model){List<User> users = userService.findUsers();model.addAttribute("users", users);return "list";}@RequestMapping("/add")public String add(User u){int count = userService.addUser(u);if(count>0){return "forward:/user/list";}else{return "ridrect:/user/list";}}
}@Controller
public class PageController {@RequestMapping("/page/{page}")public String zhuan(@PathVariable(value="page") String page){return page;}
}

3.11 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:p="http://www.springframework.org/schema/p" xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 扫表包:控制层包 --><context:component-scan base-package="com.bruceliu.controller" /><!-- 视图解析器 --><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- jsp所在的位置 --><property name="prefix" value="/WEB-INF/jsp/" /><!-- 文件后缀 --><property name="suffix" value=".jsp"></property></bean></beans>

3.12 Springmvc的web.xml配置

<!-- 配置SpringMvc核心的控制器 DispatcherServlet -->
<servlet><servlet-name>DispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 配置DispatcherServlet的初始化參數:设置文件的路径和文件名称 --><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>DispatcherServlet</servlet-name><!--不能写/*,必须写/,这是REST URL风格的要求,REST风格会在后面介绍 --><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>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>characterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>

3.13 Spring的web.xml配置

<context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value>
</context-param><!-- 添加Spring的上下文环境监听 -->
<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

3.14 页面视图

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户列表</title>
<style type="text/css">
table, td {border: 1px solid black;
}table {width: 50%;text-align: center;font-family: 微软雅黑;
}tr:hover {background-color: yellow;
}
</style>
</head>
<body><center><h2>用户列表</h2><hr /><table cellspacing="0"><tr><td>编号</td><td>登录名</td><td>真实姓名</td><td>状态</td><td>创建时间</td><td>操作</td></tr><c:forEach items="${users}" var="u"><tr><td>${u.userId}</td><td>${u.userLoginName}</td><td>${u.userName}</td><td>${u.state}</td><td>${u.createTime}</td><td><a href="#">更新</a><a href="#">删除</a></td></tr></c:forEach></table><br /> <a href="add.html">新增用户</a></center>
</body>
</html><%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body><h2>用户新增</h2><hr/><form action="${pageContext.request.contextPath}/user/add" method="post">用户名:<input type="text" name="userLoginName"/><br/>密码:<input type="text" name="userPwd"/><br/>真实姓名:<input type="text" name="userName"/><br/><input type="submit" value="新增"/></form>
</body>
</html>

使用MybatisPlus

首先将Mybatis换为mybatisplus的包

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus</artifactId><version>2.3</version>
</dependency>

需要修改applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"xmlns:jaxrs="http://cxf.apache.org/jaxrs" xmlns:cxf="http://cxf.apache.org/core"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsdhttp://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsdhttp://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsdhttp://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd"><!-- 扫描包 --><context:component-scan base-package="com.lx"><!--排除web层 --><context:exclude-filter type="annotation"expression="org.springframework.stereotype.Controller" /></context:component-scan><bean id="codeWS" class="com.lx.phone.MobileCodeWS" /><!-- 加载配置文件 --><bean id="annotationPropertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="locations"><list><value>classpath:db.properties</value></list></property></bean><!--配置C3P0数据源 --><bean id="dataSource" class=" com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="${jdbc.driverClassName}"></property><property name="jdbcUrl" value="${jdbc.url}"></property><property name="user" value="${jdbc.username}"></property><property name="password" value="${jdbc.password}"></property></bean><!--配置sessionFanctory --><bean id="sqlSessionFactory"class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><!-- 加载mybatis配置文件 --><property name="configLocation" value="classpath:mybatis-config.xml" /><!-- 自动扫描mapperxml文件 --><property name="mapperLocations" value="classpath:com/lx/mapper/*.xml" /><!--取别名 --><property name="typeAliasesPackage" value="com.lx.bean" /></bean><!--4.定义Mapper接口的扫描器 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.lx.mapper" /></bean><!--5.定义事务管理器 --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean><!-- 6.开启事务注解支持 --><tx:annotation-driven transaction-manager="transactionManager" />
</beans>

3.实体类需要加注解

@TableName()
@TableId(value="id",type=IdType.Auto)主键自增
@TableFiled(value="列明")

在MybatisPlus中使用插件Mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><plugins><plugin interceptor="com.baomidou.mybatisplus.plugins.PaginationInterceptor"></plugin>//分页插件</plugins>
</configuration>

Plus自动生成代码
首先需要加入maven依赖

 <!--代码生成 --><!-- Apache Velocity的依赖 --><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.0</version></dependency>

自动生成类

package com.lx.utils;import javax.sql.DataSource;import com.baomidou.mybatisplus.enums.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.DbType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class Test1 {@AutowiredDataSource ds;@Testpublic void testGenerator() {// 1. 全局配置GlobalConfig config = new GlobalConfig();config.setActiveRecord(false) // 是否支持AR模式.setAuthor("lx") // 作者G:\demo1\src\main\java.setOutputDir("G:\\demo1\\src\\main\\java") // 生成路径.setFileOverride(true) // 文件覆盖.setIdType(IdType.AUTO) // 主键策略.setServiceName("%sService") // 设置生成的service接口的名字的首字母是否为I// IEmployeeService.setBaseResultMap(true).setBaseColumnList(true);// 2. 数据源配置DataSourceConfig dsConfig = new DataSourceConfig();dsConfig.setDbType(DbType.MYSQL) // 设置数据库类型.setDriverName("com.mysql.jdbc.Driver").setUrl("jdbc:mysql://127.0.0.1:3306/aa?useUnicode=true&characterEncoding=utf8").setUsername("root").setPassword("root");// 3. 策略配置StrategyConfig stConfig = new StrategyConfig();stConfig.setCapitalMode(true) // 全局大写命名.setDbColumnUnderline(true) // 指定表名 字段名是否使用下划线.setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略.setTablePrefix("t_").setInclude("t_product"); // 生成的表// 4. 包名策略配置PackageConfig pkConfig = new PackageConfig();pkConfig.setParent("com.lx").setMapper("mapper").setService("service").setController("controller").setEntity("bean").setXml("mapper");// 5. 整合配置AutoGenerator ag = new AutoGenerator();ag.setGlobalConfig(config).setDataSource(dsConfig).setStrategy(stConfig).setPackageInfo(pkConfig);// 6. 执行ag.execute();}}

SSM整合以及使用MybatisPlus整合实例相关推荐

  1. SpringBoot一站式功能提供框架(一)整合MybatisPlus、整合Swagger Knif4j、整合Druid多数据源--柚子真好吃

    SpringBoot一站式功能提供框架(一)整合MybatisPlus.整合Swagger Knif4j.整合Druid多数据源--柚子真好吃 一.前言 二.功能描述 三.具体实现 四.开源地址 一. ...

  2. MybatisPlus整合Flowable出现的坑

    MybatisPlus整合Flowable出现的坑 - 摘要:现在在项目中使用的MybatisPlus,最近研究了一下流程框架Flowable,看了很多技术文档博客,打算直接整合进去,先记录一下遇到的 ...

  3. Springboot与MybatisPlus整合

    Springboot与MybatisPlus整合 数据表 CREATE DATABASE /*!32312 IF NOT EXISTS*/`jt` /*!40100 DEFAULT CHARACTER ...

  4. (转)淘淘商城系列——SSM框架整合之Dao层整合

    http://blog.csdn.net/yerenyuan_pku/article/details/72721093 一个项目中往往有三层即Dao层.Service层和Web层,看标题就知道了,本文 ...

  5. ssm框架使用resultful_SSM框架整合完整案例

    SSM框架整合 一.整合思路 二.案例实战 1. 项目前期准备 2. 整合dao层 ① mybatis全局配置文件(SqlConfig.xml) ② 配置spring.xml ③ 编写POJO类(ja ...

  6. SQL Server整合–在单个SQL Server实例上托管多个数据库

    介绍 (Introduction) Consolidating SQL Server databases and instances is a practice which, under certai ...

  7. SSM纯注解后台代码整合(Spring+SpringMvc+Mybatis)

    SSM后台整合(Spring+SpringMvc+Mybtis+事务+Rest风格+统一结果封装+统一异常处理+拦截器) 文章目录 1 基础环境搭建 1.1 建表 1.2 创建web项目 1.3 导入 ...

  8. mybatis-plus整合SpringBoot之——分页插件使用

    Mybatis-plus整合SpringBoot之--分页插件使用 前言 mybatis-plus中的分页插件学习记录: 提示:以下是本篇文章正文内容,下面案例可供参考 一.使用步骤 1.引入依赖 这 ...

  9. 实习笔记 —— SSM三个框架的整合 V (分页功能)

    系列文章目录 实习笔记 -- Spring基础 实习笔记 -- IOC反转控制(xml配置文件 + 注解) 实习笔记 -- AOP开发I 实习笔记 -- AOP开发II(AOP中Advice的类型) ...

最新文章

  1. unity天空盒渐变_CodeGo.netgt;如何使Unity中的径向渐变天空盒?
  2. 启动ipython出错_python-在异常情况下启动IPython shell
  3. Java Web整合开发(26) -- Spring概述
  4. curl命令java_上curl java 模拟http请求
  5. 3.10 十进制转换为二进制
  6. 前端学习(2485):vue里面的this指向
  7. 计算机组装过程英文版,计算机组装与维护试题及答案(国外英文资料).doc
  8. 如何学习HTML语言
  9. 罗永浩或将找陈冠希做代言人
  10. Java源码阅读PriorityQueue
  11. 《乌镇互联网饭局图鉴》
  12. java151和152_编写高质量代码:改善Java的151个建议(性能和效率)132-133
  13. 安卓手机运行ios教程_安卓手机充电提示音教程
  14. C#+.Net使用RemObjects建立客户端服务端
  15. 多种模块拔号上网驱动开发调试
  16. JDK各个版本安装以及配置,超详细
  17. 移动硬盘某个分区打不开,显示“文件或目录损坏且无法读取”的解决方法
  18. 在 Microsoft Word 插入代码块(无需下载任何软件)
  19. 安卓开发 | 将Vue项目打包为app
  20. java如何实现添加尖括号_(尖括号)在Java中意味着什么?

热门文章

  1. mysql qps 优化_mysql qps tps
  2. 近200个公共场所上线“场安码”,区块链助力公共卫生防疫
  3. Linux—— crond
  4. 视频播放器实现技术(一)
  5. PyTorch1.11.0 GPU版本安装(python3.8+pyTorch1.11.0,torch1.11.0+cu113 torchvision0.12.0+cu113)
  6. [Errno 113] No route to host
  7. [转贴]英汉习语的文化差异及翻译
  8. Java内部类 (详细讲述java内部类)
  9. C++基础知识(二) 字符串
  10. 我和卢俊卿的兼职打工经历