spring+springmvc+mybitis整合ssm

项目基本结构
在这里插入图片描述
导入jar pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.cheng</groupId>
  <artifactId>ssm</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>ssm Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>
  <dependencies>
  <!--springjdbc-->
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>5.3.4</version>
  </dependency>
  <!--spring和mybatis整合的依赖-->
  <dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>2.0.6</version>
  </dependency>

  <!--webmvc得依赖-->
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.3.4</version>
  </dependency>
  <!--lombok-->
  <dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.18</version>
  </dependency>
  <!--druid数据源-->
  <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.9</version>
  </dependency>
  <!--mysql驱动-->
  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.25</version>
  </dependency>
  <!--mybatis的依赖-->
  <dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.6</version>
  </dependency>

  <!--mybatis代码生成器-->
  <dependency>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-core</artifactId>
    <version>1.4.0</version>
  </dependency>
  <!--jsp得依赖-->
  <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
  </dependency>
  <dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.2</version>
  </dependency>

  <!--jackson依赖-->
  <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.11.4</version>
  </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.72</version>
    </dependency>

  <!--分页插件-->
  <dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.1.11</version>
  </dependency>

</dependencies>
</project>

generator 代码生成器
gertor.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>
    <classPathEntry location="D:\repMaven\mysql\mysql-connector-java\8.0.25\mysql-connector-java-8.0.25.jar" />

    <context id="DB2Tables" targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/mybatis?serverTimezone=Asia/Shanghai"
                        userId="root"
                        password="123456">
        </jdbcConnection>

        <javaTypeResolver >
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <javaModelGenerator targetPackage="com.cheng.entity" 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="com.cheng.dao"  targetProject="./src/main/java">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>


        <table  tableName="tbl_dept" domainObjectName="Dept"
                enableCountByExample="false" enableSelectByExample="false" enableUpdateByExample="false"
                enableDeleteByExample="false" catalog="mybatis">
            <property name="useActualColumnNames" value="false"></property>
            <property name="ignoreQualifiersAtRuntime" value="true"></property>
        </table>
        <table  tableName="tbl_emp" domainObjectName="Emp"
                enableCountByExample="false" enableSelectByExample="false" enableUpdateByExample="false"
                enableDeleteByExample="false" catalog="mybatis">
            <property name="useActualColumnNames" value="false"></property>
            <property name="ignoreQualifiersAtRuntime" value="true"></property>
        </table>
    </context>
</generatorConfiguration>

代码生成器 测试类

public class Test {
    public static void main(String[] args) throws Exception{
        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        File configFile = new File("gertor.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);
    }
}

**引入layui文件

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>员工表</title>
    <link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/layui/css/layui.css"/>
    <script type="text/javascript" src="${pageContext.request.contextPath}/layui/layui.js"></script>
</head>
<body>
<%--表格--%>
<table class="layui-hide" id="test" lay-filter="test"></table>
<%--添加按钮--%>
<script type="text/html" id="toolbarDemo" lay-filter="toolbarDemo" >
    <div class="layui-btn-container">
        <button class="layui-btn layui-btn-sm" lay-event="add">添加</button>
    </div>
</script>
<%--修改 删除--%>
<script type="text/html" id="barDemo">
    <a class="layui-btn layui-btn-xs" lay-event="update">修改</a>
    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>
<%--修改form--%>
<form style="display: none" class="layui-form" action="" lay-filter="addform" id="addform">
    <%--隐藏id--%>
    <input type="hidden" name="empid"/>
    <%--姓名--%>
    <div class="layui-form-item">
        <label class="layui-form-label">员工名字</label>
        <div class="layui-input-inline">
            <input type="text" name="empname" lay-verify="required" autocomplete="off" placeholder="请输入名字" class="layui-input">
        </div>
    </div>
    <%--性别--%>
    <div class="layui-form-item">
        <label class="layui-form-label">性别</label>
        <div class="layui-input-inline">
            <input type="radio" name="gender" value="男" title="男" checked="">
            <input type="radio" name="gender" value="女" title="女">
        </div>

        <%--邮箱--%>
        <div class="layui-form-item">
            <label class="layui-form-label">邮箱</label>
            <div class="layui-input-inline">
                <input type="text" name="email" lay-verify="email" placeholder="邮箱" class="layui-input">
            </div>
        </div>

        <%--<div class="layui-form-item">
            <label class="layui-form-label">部门</label>
            <div class="layui-input-block">
                <input type="text" name="dept" placeholder="部门" class="layui-input">
            </div>
        </div>--%>
<%--        部门--%>
        <div class="layui-form-item">
            <label class="layui-form-label">部门</label>
            <div class="layui-input-inline">
                <select name="dId" lay-filter="dId" id="dId">
                    <option value="请选则部门"></option>
                </select>
            </div>
        </div

    <%--提交重置--%>
    <div class="layui-form-item">
        <div class="layui-input-block">
            <%--            input form表单提交可以添加转页面  button只能将数据提交到当前页面--%>
            <input type="button" class="layui-btn" lay-submit lay-filter="demo1" id="demo1" value="立即提交"/>
            <button type="reset" class="layui-btn layui-btn-primary">重置</button>
        </div>
    </div>
</form>
<script>
    layui.use(['table', 'layer', 'jquery', 'form'], function () {
        var table = layui.table;
        var layer = layui.layer;
        var $ = layui.jquery;
        var form = layui.form;
        table.render({
            id: "test"
            , elem: '#test'
            , url: '${pageContext.request.contextPath}/findAllEmp'
            , cellMinWidth: 80 //全局定义常规单元格的最小宽度,layui 2.2.1 新增
            , toolbar: '#toolbarDemo'
            , cols: [[
                {field: 'empid', width: 80, title: 'ID', sort: true}
                , {field: 'empname', width: 80, title: '员工姓名'}
                , {field: 'gender', width: 80, title: '性别', sort: true}
                , {field: 'email', width: 80, title: '邮箱'}
                , {
                    field: 'deptname', width: 80, title: '部门名',
                    templet: function (data) {
                        return data.dept.deptname;
                    }
                }
                , {fixed: 'right', title: '操作', toolbar: '#barDemo', width: 150}
            ]],
            page: true,
            limit: 5,
            limits: [5, 10, 15, 20]
        });
        //定义表单校验
        form.verify({
            required:function (value,item){
                if(value.length<3 || value.length>12){
                    return "账号必须在[3-12]个字符之间";
                }
               /* $.ajax({
                    url:"${pageContext.request.contextPath}/cname",
                    data:{"empname":value},
                    success:function (result) {
                        if (result.code==200){
                            return "该账号已经被注册";
                        }
                    },type: "post",
                    dataType:"json"
                })*/
            }
        })
        //添加修改form封装表单
        function openap(title, data) {
            //清空数据
            $("#addform")[0].reset();
            //调用查询所有部门
            getAllDept();
            layer.open({
                type: 1,
                title: title,
                area: ['500px', '500px'],
                //添加表单
                content: $("#addform")
            })
            form.val("addform", data);
        }
        //添加事件
        table.on("toolbar(test)",function (obj){
            switch (obj.event){
                case 'add':
                    openap("添加用户",null);
                    break;
            };
        });
        //提交事件
        form.on('submit(demo1)',function (data){
            $.ajax({
                url:"${pageContext.request.contextPath}/svae",
                data: data.field,
                success:function (result) {
                    layer.closeAll();
                    if(result.code===200){
                        layer.msg(result.msg,{icon:1})
                        table.reload('test')
                    }else{
                        layer.msg(result.msg,{icon:5})
                    }
                },dataType:'json'
        })
        })
        //监听行工具事件
        table.on('tool(test)', function (obj) {
            var data = obj.data;
            // alert(data);
            if (obj.event === 'del') {
                layer.confirm("删除此行么???",function () {
                    $.ajax({
                        url: "${pageContext.request.contextPath}/del",
                        data: "empId=" + data.empid,
                        method: "post",
                        async: false,
                        success: function (msg) {
                            if (msg.code == 200) {
                                layer.closeAll();
                                table.reload('test');
                            }
                        },dataType:"json"
                    })
                });

            }
            if (obj.event == "update") {
                openap("修改用户", data);
            }
        });
    //    获取所有部门信息
        function getAllDept(){
            $.ajax({
                url: "${pageContext.request.contextPath}/getByDept",
                method: "post",
                async: false,
                success:function (result){
                    var depts=result.data;
                    var str="";
                    for(var i=0;i<depts.length;i++){
                        //创建option标签<option value='1'>运维部</option>
                        // var option = $("<option>").attr("value",depts[i].deptid).html(depts[i].deptname);
                        // $("#dId").append(option)
                        str=str+"<option value='"+depts[i].deptid+"'>"+depts[i].deptname+"</option>";
                    }
                    console.log(str)
                    $("#dId").html(str)
                    form.render('select','addform'); //重新渲染标签 select标签
                },dataType:"json"
            })
        }

    });
</script>
</body>
</html>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
         http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
<!--    加载springmvc-->
    <servlet>
        <servlet-name>srpingmvc</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>
    </servlet>
    <servlet-mapping>
        <servlet-name>srpingmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
<!--    加载spring配置文件-->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
<!--    指定加载的配置文件-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:Spring.xml</param-value>
    </context-param>
</web-app>

springmvc.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 http://www.alibaba.com/schema/stat http://www.alibaba.com/schema/stat.xsd">
<!--        扫描包-->
        <context:component-scan base-package="com.cheng"/>
<!--    静态资源放行-->
    <mvc:default-servlet-handler/>
    <mvc:annotation-driven/>
<!--    视图解析器-->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/view/"/>
            <property name="suffix" value=".jsp"/>
        </bean>
</beans>

srping.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"
       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">
<!--    导入属性文件-->
    <context:property-placeholder location="classpath:db.properties"/>
<!--    配置数据源-->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${jdbc.driverName}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>
    <!--配置sqlSessionFactory: spring整合mybatis时把mybatis配置文件中的内容封装成一个类SqlSessionFactoryBean-->
    <bean class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!--指定映射文件所在的路径-->
        <property name="mapperLocations" value="classpath:mapper/*.xml"/>
        <!-- 传入PageHelper的插件 -->
        <property name="plugins">
            <array>
                <!-- 传入插件的对象 -->
                <bean class="com.github.pagehelper.PageInterceptor">
                    <property name="properties">
                        <props>
                            <prop key="reasonable">true</prop>
                        </props>
                    </property>
                </bean>
            </array>
        </property>
    </bean>
    <!--为dao生成代理实现类-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!--为指定包下的接口生成实现类-->
        <property name="basePackage" value="com.cheng.dao"/>
    </bean>


</beans>

db.properties

jdbc.driverName=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=Asia/Shanghai
jdbc.username=root
jdbc.password=123456

EmpMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cheng.dao.EmpMapper">
  <resultMap id="BaseResultMap" type="com.cheng.entity.Emp">
    <id column="empId" jdbcType="INTEGER" property="empid" />
    <result column="empName" jdbcType="VARCHAR" property="empname" />
    <result column="gender" jdbcType="CHAR" property="gender" />
    <result column="email" jdbcType="VARCHAR" property="email" />
    <result column="d_Id" jdbcType="INTEGER" property="dId" />
    <association property="dept" javaType="com.cheng.entity.Dept">
      <id property="deptid" column="deptId"/>
      <result property="deptname" column="deptName"/>
    </association>
  </resultMap>
  <sql id="Base_Column_List">
    empId, empName, gender, email, d_Id
  </sql>
  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
    select 
    <include refid="Base_Column_List" />
    from tbl_emp
    where empId = #{empid,jdbcType=INTEGER}
  </select>



<!--  查询所有员工信息-->
  <select id="findAllEmp" resultMap="BaseResultMap">
    select * from tbl_emp  e join tbl_dept d on e.d_Id=d.deptId
  </select>





  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
    delete from tbl_emp
    where empId = #{empid,jdbcType=INTEGER}
  </delete>

  <insert id="insert" parameterType="com.cheng.entity.Emp">
    insert into tbl_emp (empId, empName, gender, 
      email, d_Id)
    values (#{empid,jdbcType=INTEGER}, #{empname,jdbcType=VARCHAR}, #{gender,jdbcType=CHAR}, 
      #{email,jdbcType=VARCHAR}, #{dId,jdbcType=INTEGER})
  </insert>
  <insert id="insertSelective" parameterType="com.cheng.entity.Emp">
    insert into tbl_emp
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="empid != null">
        empId,
      </if>
      <if test="empname != null">
        empName,
      </if>
      <if test="gender != null">
        gender,
      </if>
      <if test="email != null">
        email,
      </if>
      <if test="dId != null">
        d_Id,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="empid != null">
        #{empid,jdbcType=INTEGER},
      </if>
      <if test="empname != null">
        #{empname,jdbcType=VARCHAR},
      </if>
      <if test="gender != null">
        #{gender,jdbcType=CHAR},
      </if>
      <if test="email != null">
        #{email,jdbcType=VARCHAR},
      </if>
      <if test="dId != null">
        #{dId,jdbcType=INTEGER},
      </if>
    </trim>
  </insert>
  <update id="updateByPrimaryKeySelective" parameterType="com.cheng.entity.Emp">
    update tbl_emp
    <set>
      <if test="empname != null">
        empName = #{empname,jdbcType=VARCHAR},
      </if>
      <if test="gender != null">
        gender = #{gender,jdbcType=CHAR},
      </if>
      <if test="email != null">
        email = #{email,jdbcType=VARCHAR},
      </if>
      <if test="dId != null">
        d_Id = #{dId,jdbcType=INTEGER},
      </if>
    </set>
    where empId = #{empid,jdbcType=INTEGER}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.cheng.entity.Emp">
    update tbl_emp
    set empName = #{empname,jdbcType=VARCHAR},
      gender = #{gender,jdbcType=CHAR},
      email = #{email,jdbcType=VARCHAR},
      d_Id = #{dId,jdbcType=INTEGER}
    where empId = #{empid,jdbcType=INTEGER}
  </update>
  <update id="ap">
    update tbl_emp
    <set>
      <if test="empname != null">
        empName = #{empname,jdbcType=VARCHAR},
      </if>
      <if test="gender != null">
        gender = #{gender,jdbcType=CHAR},
      </if>
      <if test="email != null">
        email = #{email,jdbcType=VARCHAR},
      </if>
      <if test="dId != null">
        d_Id = #{dId,jdbcType=INTEGER},
      </if>
    </set>
    where empId = #{empid,jdbcType=INTEGER}
  </update>


  <!-- 删除行-->
  <delete id="del">
    delete from tbl_emp
    where empId = #{empid}
  </delete>


</mapper>

DeptMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cheng.dao.DeptMapper">
  <resultMap id="BaseResultMap" type="com.cheng.entity.Dept">
    <id column="deptId" jdbcType="INTEGER" property="deptid" />
    <result column="deptName" jdbcType="VARCHAR" property="deptname" />
  </resultMap>
  <sql id="Base_Column_List">
    deptId, deptName
  </sql>
  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
    select 
    <include refid="Base_Column_List" />
    from tbl_dept
    where deptId = #{deptid,jdbcType=INTEGER}
  </select>

<!--  查询所有部门信息-->
  <select id="selectAll" resultType="com.cheng.entity.Dept">
            select  <include refid="Base_Column_List"/> from tbl_dept
  </select>





  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
    delete from tbl_dept
    where deptId = #{deptid,jdbcType=INTEGER}
  </delete>
  <insert id="insert" parameterType="com.cheng.entity.Dept">
    insert into tbl_dept (deptId, deptName)
    values (#{deptid,jdbcType=INTEGER}, #{deptname,jdbcType=VARCHAR})
  </insert>
  <insert id="insertSelective" parameterType="com.cheng.entity.Dept">
    insert into tbl_dept
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="deptid != null">
        deptId,
      </if>
      <if test="deptname != null">
        deptName,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="deptid != null">
        #{deptid,jdbcType=INTEGER},
      </if>
      <if test="deptname != null">
        #{deptname,jdbcType=VARCHAR},
      </if>
    </trim>
  </insert>
  <update id="updateByPrimaryKeySelective" parameterType="com.cheng.entity.Dept">
    update tbl_dept
    <set>
      <if test="deptname != null">
        deptName = #{deptname,jdbcType=VARCHAR},
      </if>
    </set>
    where deptId = #{deptid,jdbcType=INTEGER}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.cheng.entity.Dept">
    update tbl_dept
    set deptName = #{deptname,jdbcType=VARCHAR}
    where deptId = #{deptid,jdbcType=INTEGER}
  </update>
</mapper>

TableLayui类

@Data
@NoArgsConstructor
@AllArgsConstructor
public class TableLayui {
    private Integer code;
    private String msg;
    private Long count;
    private Object data;
}

Reust类

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Reust {
    Integer code;
    String msg;
    Object data;

}

Emp类

package com.cheng.entity;

public class Emp {
    private Integer empid;

    private String empname;

    private String gender;

    private String email;

    private Integer dId;
    private Dept dept;

    public Dept getDept() {
        return dept;
    }

    public void setDept(Dept dept) {
        this.dept = dept;
    }


    public Integer getEmpid() {
        return empid;
    }

    public void setEmpid(Integer empid) {
        this.empid = empid;
    }

    public String getEmpname() {
        return empname;
    }

    public void setEmpname(String empname) {
        this.empname = empname == null ? null : empname.trim();
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender == null ? null : gender.trim();
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email == null ? null : email.trim();
    }

    public Integer getdId() {
        return dId;
    }

    public void setdId(Integer dId) {
        this.dId = dId;
    }
}

dept类

package com.cheng.entity;

public class Dept {
    private Integer deptid;

    private String deptname;

    public Integer getDeptid() {
        return deptid;
    }

    public void setDeptid(Integer deptid) {
        this.deptid = deptid;
    }

    public String getDeptname() {
        return deptname;
    }

    public void setDeptname(String deptname) {
        this.deptname = deptname == null ? null : deptname.trim();
    }
}

EmpMapper

package com.cheng.dao;

import com.cheng.entity.Emp;

import java.util.List;

public interface EmpMapper {
    int deleteByPrimaryKey(Integer empid);

    int insert(Emp record);

    int insertSelective(Emp record);

    Emp selectByPrimaryKey(Integer empid);

    int updateByPrimaryKeySelective(Emp record);

    int updateByPrimaryKey(Emp record);


//    查询emp所有
    List<Emp> findAllEmp();

//    删除信息
    int del(Integer empid);
//    修改添加
    int ap(Emp emp);


}

DeptMapper

package com.cheng.dao;

import com.cheng.entity.Dept;

import java.util.List;

public interface DeptMapper {
    int deleteByPrimaryKey(Integer deptid);

    int insert(Dept record);

    int insertSelective(Dept record);

    Dept selectByPrimaryKey(Integer deptid);

    int updateByPrimaryKeySelective(Dept record);

    int updateByPrimaryKey(Dept record);

    List<Dept> selectAll();
}

EmpController

package com.cheng.controller;


import com.cheng.dao.EmpMapper;
import com.cheng.entity.Emp;
import com.cheng.util.Reust;
import com.cheng.util.TableLayui;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
@RestController
public class EmpController {
    @Autowired
    private EmpMapper empMapper;

    @RequestMapping("findAllEmp")
    public TableLayui findAllEmp(Integer page, Integer limit) {
        PageHelper.startPage(page, limit);
        List<Emp> list = empMapper.findAllEmp();
        PageInfo<Emp> pageInfo = new PageInfo<Emp>(list);
        return new TableLayui(0, "", pageInfo.getTotal(), pageInfo.getList());
    }

    //
    @RequestMapping("svae")
    public Reust svae(Emp emp) {
         int ap;
        if (emp.getEmpid() != null && emp.getEmpid() != 0) {
            ap = empMapper.updateByPrimaryKey(emp);

        } else {
            ap = empMapper.insert(emp);
        }
        if (ap>0) {
            return new Reust(200, "添加成功", null);

        }else {
            return new Reust(500, "添加失败", null);
    }
    }
    //  删除
    @RequestMapping("del")
    public Reust del(Integer empId) {
        int del = empMapper.del(empId);
//        System.out.println(empId);
        if (del > 0) {
            return new Reust(200, "删除成功", null);

        } else {
            return new Reust(200, "删除成功", null);

        }
    }

    //
    @RequestMapping("cname")
    public Reust cname(String empname) {
        if (empname.equals("ccr")){
            return new Reust(200,"账号存在",null);
        }else {
            return new Reust(500,"账号失败",null);

        }
    }



}

Deptcontertller

package com.cheng.controller;

import com.cheng.dao.DeptMapper;
import com.cheng.entity.Dept;
import com.cheng.util.Reust;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;
@Controller
public class Deptcontertller {
    @Autowired
    private DeptMapper deptMapper;
    @RequestMapping("/findById")
    @ResponseBody
    public Dept findByid(Integer id){
        Dept dept = deptMapper.selectByPrimaryKey(id);
        return dept;
    }
    @RequestMapping("getByDept")
    @ResponseBody
    public Reust getByDept(){
        List<Dept> depts = deptMapper.selectAll();


        return new Reust(200,"查询成功",depts);
    }

}

项目运行效果

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值