pom.xml所需要的基本依赖和插件:

<dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.0</version>
        </dependency>

<dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.3.5</version>
        </dependency>
        <!--逆向生成带分页的插件-->
        <dependency>
            <groupId>com.itfsw</groupId>
            <artifactId>mybatis-generator-plugin</artifactId>
            <version>1.0.5</version>
        </dependency>
        <!--2.Spring-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>4.2.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>4.2.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.2.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.2.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>4.2.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.2.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>4.2.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.2.5.RELEASE</version>
        </dependency>
        <!--3.SpringMvc-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.2.5.RELEASE</version>
        </dependency>
        <!--import org.junit.Test  @Test-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
        <!--4.c3p0-->
        <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.5.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
        </dependency>
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>
        <!--pojo转换成 json -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.7.3</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.7.3</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.7.3</version>
        </dependency>

<!--servlet 2.5 -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <!--此处的servlet仅在编译和测试的时候使用,运行的时候不使用,使用的是tomcat中的servlet-->
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency>

插件:这里Tomcat做测试用,注意Tomcat中的servlet与依赖中的servlet的冲突,可以配置依赖servlet的scope,<scope>provided</scope>

插件中的 <pluginManagement>是插件管理,如果要运行Tomcat,需要注释掉这个插件管理

<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/</path>
<port>8080</port>
<uriEncoding>UTF-8</uriEncoding>
</configuration>
</plugin> 配置web.xml: <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
         http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         id="WebApp_ID" version="3.0">
  <!--web.xml:优先加载springmvc、而后加载spring,spring中在加载mybatis-->
  <!--全局、监听、骑马、异步走、servlet优先补充维生素c-->
 
  <!--1、全局监听器-->
  <context-param>
    <!--1-1、配置spring核心配置文件,并关联监听器-->
    <!--contextConfigLocation是全局监听器的一个属性-->
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring/applicationContext.xml</param-value>
  </context-param>
  <!--1-2、设置监听器ContextLoaderListener,利用属性contextConfigLocation关联spring核心配置文件,并自动加载核心配置文件-->
  <listener>
    <!--上下文加载监听器-->
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>  
  <!--2、通过编码格式过滤器过滤,并设置post方法中的request请求中文乱码编码
  拦截所有请求,request和response
  设置编码编码格式拦截器的属性encoding,类似于给set方法赋值
  再连接到编码格式拦截器
  -->
  <filter>
    <!--2.1、这里对监听器拦截的事件进行关联。ec起关联作用-->
    <filter-name>ec</filter-name>
    <!--2.2、提前找到CharacterEncodingFilter编码格式拦截器类提前拦截-->
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <!--2-3、局部初始化参数,给CharacterEncodingFilter编码格式拦截器的encoding属性设置编码格式-->
    <init-param>
      <param-name>encoding</param-name>
      <param-value>Utf-8</param-value>
    </init-param>
  </filter>
  <!--2.4、对所有的请求进行拦截用/*-->
  <filter-mapping>
    <filter-name>ec</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>   <!--3、使用servlet配置mvc,这里是配置springmvc的参数-->
  <servlet>
    <servlet-name>ds</servlet-name>
    <!--DispatcherServlet是mvc核心处理servlet,所有的servlet都归结于此-->
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <!--contextConfigLocation是核心处理的servlet类的属性-->
      <param-name>contextConfigLocation</param-name>
      <!--mvc核心配置文件-->
      <param-value>classpath:mvc/MVC.xml</param-value>
    </init-param>
    <!--启动优先加载mvc,1为-->
    <load-on-startup>1</load-on-startup>
  </servlet>
  <!--拦截所有的servlet请求-->
  <servlet-mapping>
    <servlet-name>ds</servlet-name>
    <!--/表示拦截的是servlet请求,被/*包含了-->
    <url-pattern>/</url-pattern>
  </servlet-mapping> </web-app> 配置springmvc的核心配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
         http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd"> <!--web.xml优先加载mvc(servlet层),在mvc核心配置文件中:启动注解:mvc特有的注解,开启mvc注解驱动,拼接jsp路径-->     <!--1、手动开启controller层类特有的注解,利用包扫描的方式-->
    <context:component-scan base-package="com.controller"/>     <!--2、开启SpringMVC特有的注解,包括方法和属性的注解-->
    <!--annotation-driven注释驱动-->
    <!--2-1、设置响应编码:string、json-->
    <mvc:annotation-driven>
        <!--2-1、converters转换器-->
        <mvc:message-converters>
            <!--string的http信息转换器:这里的源码编码格式为Charset.forName("ISO-8859-1"),覆盖它-->
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
            <!--为bean的有参构造设置编码-->
            <constructor-arg value="UTF-8"></constructor-arg>
            </bean>
            <!--这里的MappingJackson2HttpMessageConverter源码中父类的编码格式为utf-8,不用在设置有参构造的编码-->
            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
        </mvc:message-converters>
    </mvc:annotation-driven>     <!--3、mvc默认的处理器:在web.xml中,配置mvc拦截servlet请求,并不能拦截jsp请求,如果拦截了静态资源的请求,就转交默认servlet
    处理,如果不是静态请求,就转交dispatcherservlet核心servlet处理
    -->
    <mvc:default-servlet-handler></mvc:default-servlet-handler>     <!--4、视图解析器,在controller中进行页面跳转的时候没有请求和响应,只能通过return来返回一个字符换,他的文件前后缀名就在这里拼接好-->
    <!--内部的资源视图解析器:就是web-INF下的资源-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!--前缀-->
        <property name="prefix" value="/WEB-INF/jsp/"></property>
        <!--后缀-->
        <property name="suffix" value=".jsp"></property>
    </bean> </beans> 配置spring核心配置文件:appliacationContext.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/tx
          http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
         http://www.springframework.org/schema/context
         http://www.springframework.org/schema/context/spring-context.xsd
         http://www.springframework.org/schema/aop
         http://www.springframework.org/schema/aop/spring-aop.xsd">
    <!--controller层有mvc来托管,dao由mybatis托管,剩下service层,spring除了托管service层还要托管mybatis的部分代码-->     <!--1、开启service层的注解:这里通过包扫描的方式-->
    <context:component-scan base-package="com.service"/>     <!--托管部分mybatis的代码-->
    <!--2、加载db.properties -->
    <context:property-placeholder location="classpath:properties/db.properties"/>     <!--3、数据源:这里通过c3p0连接数据池-->
    <bean id="ds" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.driver}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="user" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>     <!--4、开启事务管理:需要jdbc依赖-->
    <bean id="tx" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!--关联数据源-->
        <property name="dataSource" ref="ds"></property>
    </bean>     <!--5、开启事物的注解:@Transactional-->
    <tx:annotation-driven transaction-manager="tx"/>     <!--6、spring去托管mybatis部分代码-->
    <bean id="fb" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--加载数据源,关联数据源-->
        <property name="dataSource" ref="ds"></property>
        <!--加载mybatis核心配置文件-->
        <property name="configLocation" value="classpath:mybatis/sqlMapConfig.xml"/>
        <!--利用包扫描的方式加载映射文件-->
        <property name="mapperLocations" value="classpath:mapper/*.xml"/>
    </bean>     <!--7、上面加载映射文件的时候利用了包扫描,利用包扫描加载映射文件要将映射文件和接口类放在同一个文件夹下。
    这里要做的就是关联接口和映射文件 MapperScannerConfigurer映射扫描配置-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!--指定接口路径-->
        <property name="basePackage" value="com.mapper"/>
        <property name="sqlSessionFactoryBeanName" value="fb"/>
    </bean> </beans> mybatis核心配置文件:
<?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>
   <!--spring托管了mybatis部分代码后,这里只需要配置预置输出和别名-->
   <!--1、预制输出-->
    <settings>
        <!-- 可以在控制台输出日志信息:sql语句和参数 -->
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>     <!-- 2.表示类型别名   -->
    <typeAliases>
        <!-- 2.1每一个类型的别名  type属性表示别名对应的类型地址 alias表示起的别名-->
        <typeAlias type="java.util.List" alias="list"/>
        <!--<typeAlias type="com.kgc.pojo.Emp" alias="emp"/>-->
        <!-- package表示包,利用包的形式进行扫描包之下的所有的类,别名就是当前类名 -->
        <package name="com.pojo"/>
    </typeAliases> </configuration>  

db.properties:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/kgc1?zeroDateTimeBehavior=convertToNull
jdbc.username=root
jdbc.password=123456

mbg逆向生成配置文件:

<?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">
        <!--&lt;!&ndash;分页插件&ndash;&gt;-->
        <plugin type="com.itfsw.mybatis.generator.plugins.LimitPlugin"/>
        <commentGenerator>
            <!-- 是否去除注释,true表示是,false否 -->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>         <!-- 1.连接数据库信息 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/kgc1?characterEncoding=UTF-8"
                        userId="root"
                        password="123456">
        </jdbcConnection>
        <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
            NUMERIC 类型解析为java.math.BigDecimal -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>         <!-- 2.pojo类的生成配置  targetPackage表示目标文件夹
      targetProject表示当前目标文件夹所放置的目标地址
    -->
        <javaModelGenerator targetPackage="com.pojo" targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>         <!-- 3.sql映射文件生成配置 -->
        <sqlMapGenerator targetPackage="mapper" targetProject=".\src\main\resources">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>         <!-- 4.mapper接口配置 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.mapper" targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>         <!-- 5.数据库表和实体类映射 -->
        <table tableName="emp" domainObjectName="Emp">
        </table>
        <table tableName="dept" domainObjectName="Dept">
        </table>
    </context>
</generatorConfiguration> MbgTest逆向生成启动方法:
import org.junit.Test;
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; import java.io.File;
import java.util.ArrayList;
import java.util.List; public class MbgTest {
    @Test
    public void create() throws Exception {
        List<String> warnings = new ArrayList<String>();
        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);
    }
}

show.jsp:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2019/6/24 0024
  Time: 下午 7:25
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>数据展示页面</title>
    <script src="/js/jquery-3.3.1.min.js"/>
</head>
<body>
<%--搜索框--%>
<form  id="myForm" action="/emp/show" method="post" style="text-align: center">
    姓名:<input type="text" name="name" value="${page.name}">

生日:<input type="date" name="startBirth"  value="<fmt:formatDate value='${page.startBirth}' pattern='yyyy-MM-dd'/>" >-
    <input type="date" name="endBirth" value="<fmt:formatDate value='${page.endBirth}' pattern='yyyy-MM-dd'/>" >
    部门:<select name="deptId" >
    <option value="0">--请选择--</option>
    <c:forEach var="dept" items="${depts}">
        <option value="${dept.did}"
                <c:if test="${dept.did==page.deptId}">selected=true</c:if>
        >${dept.dname}</option>
    </c:forEach>
</select>
    <input type="hidden" id="pageNum" name="currPage" value="1">
    <input type="submit" value="搜索">
</form>

<%--数据展示页面--%>
<table border="1" cellpadding="10" cellspacing="1">
    <tr>
        <td>编号</td>
        <td>姓名</td>
        <td>年龄</td>
        <td>性别</td>
        <td>生日</td>
        <td>津贴</td>
        <td>工资</td>
        <td>部门</td>
    </tr>
    <c:forEach var="emp" items="${list}">
        <tr>
            <td>${emp.id}</td>
            <td>${emp.name}</td>
            <td>${emp.age}</td>
            <td>${emp.sex}</td>
            <td>${emp.birth}</td>
            <td>${emp.bonus}</td>
            <td>${emp.salary}</td>
            <td>${emp.deptid}</td>
        </tr>
    </c:forEach>

</table>

<%--分页区--%>
<table align="center" cellpadding="10" cellspacing="10" border="1">
    <tr>
        <td><a href="javascript:goPage(1)">首页</a></td>
        <td><a href="javascript:goPage(${page.currPage-1})">上一页</a></td>
        <c:forEach var="i" begin="1" end="${page.totalPage}">
            <td><a href="javascript:goPage(${i})">${i}</a></td>
        </c:forEach>
        <td><a href="javascript:goPage(${page.currPage+1})">下一页</a></td>
        <td><a href="javascript:toPage()">跳转</a>到第<input size="2" type="text" value="${page.currPage}" id="go">页</td>
        <td><a href="javascript:goPage(${page.totalPage})">尾页</a></td>
    </tr>
</table>
</body>
<!--js部分-->
<script>
    function goPage(page) {
        var total=${page.totalPage};

if(page>total){
            page=total;
        }
        if(page<1){
            page=1;
        }
        $("#pageNum").val(page);
        $("#myForm").submit()
    }
    function toPage() {
        var page=$("#go").val();
        goPage(page)
    }
</script>
</html>

add.jsp:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2019/6/25 0025
  Time: 上午 10:35
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="/emp/add2" method="post">
    姓名:<input type="text" name="name"/> <br>
    年龄:<input type="text" name="age"/><br>
    性别:<input type="text" name="sex"/><br>
    生日:<input type="date" name="birth"/><br>
    津贴:<input type="text" name="bonus"/><br>
    工资:<input type="text" name="salary"/><br>
    部门:<select name="deptid">
    <c:forEach var="dept" items="${depts}">
        <option value="${dept.did}">${dept.dname}</option>
    </c:forEach>
</select><br>
    <input type="submit" value="提交">
</form>
</body>
</html>


update.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<form action="/emp/update2" method="post">

<input type="hidden" name="id" value="${emp.id}">

姓名:<input type="text" name="name" value="${emp.name}"/> <br>
    年龄:<input type="text" name="age" value="${emp.age}"/><br>
    性别:<input type="text" name="sex" value="${emp.sex}"/><br>
    生日:<input type="date" name="birth"
              value="<fmt:formatDate value='${emp.birth}' pattern='yyyy-MM-dd'/>" /><br>
    津贴:<input type="text" name="bonus" value="${emp.bonus}"/><br>
    工资:<input type="text" name="salary" value="${emp.salary}"/><br>
    部门:<select name="deptid">
    <c:forEach var="dept" items="${depts}">
        <option value="${dept.did}" <c:if test="${dept.did==emp.deptid}" >selected='true'</c:if> >
                ${dept.dname}
        </option>
    </c:forEach>
</select><br>
    <input type="submit" value="提交">
</form>

</body>
</html>

service层:

import com.mapper.DeptMapper;
import com.mapper.EmpMapper;
import com.pojo.Dept;
import com.pojo.Emp;
import com.pojo.EmpExample;
import com.pojo.PageBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
@Service
public class EmpServiceImpl implements IEmpService {

@Autowired
    private DeptMapper deptMapper;
    @Autowired
    private EmpMapper empMapper;

@Override
    public List<Dept> selectDept() {
        return null;
    }

@Override//分页查询所有员工
    public List<Emp> selectAll(PageBean page) {
        //1.条件 name  startBirth  endBirth  deptId
        EmpExample e = new EmpExample();
        //条件拼接
        EmpExample.Criteria c = e.createCriteria();

if(page.getName()!=null){
            c.andNameLike("%"+page.getName()+"%");
        }
        if(page.getStartbirth()!=null){
            c.andBirthGreaterThanOrEqualTo(page.getStartbirth());
        }
        if(page.getEndBirth()!=null){
            c.andBirthLessThanOrEqualTo(page.getEndBirth());
        }
        if(page.getDeptid()!=null&&page.getDeptid()!=0){
            c.andDeptidEqualTo(page.getDeptid());
        }

//分页
        //查询总记录数
        int count = (int) empMapper.countByExample(e);
        int size = page.getSize();
        int totalPage=(count%size==0)?(count/size):(count/size+1);

page.setCount(count);
        page.setTotalPage(totalPage);
        int startRow=(page.getCurrPage()-1)*size;

e.limit(startRow,size);
        List<Emp> list = empMapper.selectByExample(e);

for(Emp emp:list){
            Dept dept = deptMapper.selectByPrimaryKey(emp.getDeptid());
            emp.setDept(dept);
        }

return  list;
    }

@Override//查询所有的部门
    public List<Dept> selectDepts() {
        return deptMapper.selectByExample(null);
    }

@Override
    public int deleteById(int id) {
        return empMapper.deleteByPrimaryKey(id);
    }

@Override
    public int addEmp(Emp emp) {
        return empMapper.insertSelective(emp);
    }

@Override
    public Emp selectById(int id) {
        return empMapper.selectByPrimaryKey(id);
    }

@Override
    public int updateEmp(Emp emp) {
        return empMapper.updateByPrimaryKeySelective(emp);
    }

}


pagebean:

public class PageBean {
    //分页四大参数
    private Integer currPage=1;
    private Integer size=3;
    private Integer count;
    private Integer totalPage;

//搜索框查询条件
   private Integer deptid;
    @DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
    private Date Startbirth;
    @DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
    private Date EndBirth;
    private String name;


controller:

import com.pojo.Dept;
import com.pojo.Emp;
import com.pojo.PageBean;
import com.service.IEmpService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import java.util.List;

@Controller
@RequestMapping("/emp")
public class EmpController {
    @Autowired
    private IEmpService service;

//新增页面跳转
    @RequestMapping("/add1")
    public String add1(Model m){
        //查询所有的部门--中下拉框展示所有的部门
        List<Dept> depts=service.selectDepts();
        m.addAttribute("depts",depts);
        return "add";
    }
    //实现新增
    @RequestMapping("/add2")
    public String add2(Emp emp){
        int i=service.addEmp(emp);
        return "redirect:/emp/show";//去show方法 重查
    }

//1.查询单条 2.页面跳转
    @RequestMapping("/update1/{id}")
    public String update1(@PathVariable String id, Model m){
        Emp e=service.selectById(Integer.parseInt(id));
        m.addAttribute("emp",e);

//查询所有的部门--中下拉框展示所有的部门
        List<Dept> depts=service.selectDepts();
        m.addAttribute("depts",depts);

return "update";//转发到update.jsp
    }
    //执行修改
    @RequestMapping("/update2")
    public String update2(Emp emp){
        int i=service.updateEmp(emp);
        return "redirect:/emp/show";//去show方法 重查
    }

@RequestMapping("/deleteById/{id}")
    public String deleteById(@PathVariable  String id){
        int i=service.deleteById(Integer.parseInt(id));
        //删除后重查数据库
        return "redirect:/emp/show";//去show方法 重查
    }

//取调存转
    @RequestMapping("/show")
    public ModelAndView show(PageBean page, ModelAndView mvc){
    //查询所有部门下拉框展示
        List<Dept> depts=service.selectDept();

//模糊分页查询
        List<Emp> list=service.selectAll(page);

//存
    mvc.addObject("depts",depts);
    mvc.addObject("list",list);
    mvc.addObject("page",page);

//转-页面跳转
        mvc.setViewName("show");
        return mvc;
    }

}

 

搭建SSM框架的配置文件的更多相关文章

  1. 快速搭建ssm框架

    快速搭建SSM框架 因为最近有很多朋友问我自己的项目搭建的不够完善,并且经常出现一些小问题,那么今天我又整理了一下文档教大家如何快速搭建SSM框架我是用 eclipse搭建的,如果想用idear的话我 ...

  2. Eclipse中使用Maven搭建SSM框架

    Eclipse中不使用Maven搭建SSM框架:https://www.cnblogs.com/xuyiqing/p/9569459.html IDEA中使用Maven搭建SSM框架:https:// ...

  3. 第n次搭建 SSM 框架

    什么说第 N 次搭建SSM框架呢? 刚学习java的时候,搭建 SSM 框架想做一个个人项目之类的,后来没搭起来,也就拖延了,进入公司之后,接触的第一个项目就是SSM的,模仿了一下,也能搭个简简单单的 ...

  4. 详解intellij idea搭建SSM框架(spring+maven+mybatis+mysql+junit)(上)

    SSM(Spring+SpringMVC+MyBatis)框架集由Spring.SpringMVC.MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架. 其中spring是一个轻 ...

  5. IDEA搭建ssm框架测试衍生出的问题The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Develop\jdk7\jdk1.7.0_79\bin;

    最近玩起IDEA这开发工具,搭建ssm框架测试时,部署项目出现如下问题: 信息: The APR based Apache Tomcat Native library which allows opt ...

  6. 2018用IDEA搭建SSM框架(Spring+SpringMVC+Mybatis)

    使用IDEA搭建ssm框架 环境 工具:IDEA 2018.1 jdk版本:jdk1.8.0_171 Maven版本:apache-maven-3.5.3 Tomcat版本:apache-tomcat ...

  7. 使用maven搭建ssm框架的javaweb项目

    目前主流的javaweb项目,常会用到ssm(Spring+Spring MVC+Mybatis)框架来搭建项目的主体框架,本篇介绍搭建SSM框架的maven项目的实施流程.记之共享! 一.SSM框架 ...

  8. 使用maven搭建SSM框架

    使用maven搭建SSM框架,首先得准备好maven环境. 搭建maven环境 第一步:下载maven http://maven.apache.org/download.cgi 下载后解压就可以了. ...

  9. 使用Maven搭建SSM框架(Eclipse)

    今天学习一下使用Maven搭建SSM框架,以前都是用别人配置好的框架写代码,今天试试自己配置一下SSM框架. 这里我的参数是Windows7 64位,tomcat9,eclipse-jee-neon- ...

随机推荐

  1. [译]C# 7系列,Part 8: in Parameters in参数

    原文:https://blogs.msdn.microsoft.com/mazhou/2018/01/08/c-7-series-part-8-in-parameters/ 背景 默认情况下,方法参数 ...

  2. 小程序填坑——bindconfirm事件

    一.介绍 当你要在手机软键盘中触发一些方法,就可以使用input标签的bindconfirm事件.这个事件的作用是当你在软键盘上点击确认的时候,将触发你指定的方法. 还可以使用confirm-type ...

  3. ASP.NET Core on K8S深入学习(11)K8S网络知多少

    本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 一.Kubernetes网络模型 我们都知道Kubernetes作为容器编排引 ...

  4. 带你揭秘Shiro(二)

    授权流程 1.对subject进行授权,调用方法isPermitted("permission串") 2.SecurityManager执行授权,通过ModularRealmAut ...

  5. ES、kibana安装及交互操作

    一.ES的安装与启动 1.ES安装(Windows环境) 下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch 版本 ...

  6. C#使用Linq to csv读取.csv文件数据

    前言:今日遇到了一个需要读取CSV文件类型的EXCEL文档数据的问题,原本使用NPOI的解决方案直接读取文档数据,最后失败了,主要是文件的类型版本等信息不兼容导致.其他同事有使用linq to csv ...

  7. java 基础排序(冒泡、插入、选择、快速)算法回顾

    java 基础排序(冒泡.插入.选择.快速)算法回顾 冒泡排序 private static void bubbleSort(int[] array) { int temp; for (int i = ...

  8. Spring 核心技术与产品理念剖析【下】

    3. Spring Cloud 蝶变重生 Spring 框架的升级演进都是围绕分层架构进行的,从简单到复杂,再回到简单的过程.如果我们没有经历过 Spring 最开始繁琐的配置,然后一步步精简,就根本 ...

  9. Java 多线程应知应会

    请简单说说 synchronized 关键字的底层原理 java 说到多线程绝对绕不开 synchronized,很多 java 工程师对 synchronized 是又爱又恨.为什么呢?主要原因包括 ...

  10. C lang:Definition function

    Ax_note in parameter for show_n_char() is formal parameter Aa_Definition function #include <stdio ...