当前位置: 首页 > news >正文

做婚恋网站挣钱吗中国数据网

做婚恋网站挣钱吗,中国数据网,网站上的广告是怎么做的,国家企业信用系统年报入口SSM02 此时我们已经做好了登录模块接下来可以做一下学生管理系统的增删改查操作 首先&#xff0c;我们应当有一个登录成功后的主界面 在webapp下新建 1.main.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"&…

SSM02

此时我们已经做好了登录模块接下来可以做一下学生管理系统的增删改查操作

首先,我们应当有一个登录成功后的主界面

在webapp下新建

1.main.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="js/vue.js"></script><script src="js/jquery.min.js"></script><!-- 引入样式 --><link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css"><!-- 引入组件库 --><script src="https://unpkg.com/element-ui/lib/index.js"></script><style>* {margin: 0;padding: 0;}.el-header {background-color: #B3C0D1;color: #333;line-height: 60px;}.el-tabs__header {margin: 0;}.el-aside {color: #333;height: 640px;}.el-main {padding: 0;}</style>
</head>
<body>
<div id="app"><el-container style="height: 500px; border: 1px solid #eee"><el-header style="text-align: right; font-size: 12px"><span>欢迎用户:</span><el-dropdown><i class="el-icon-setting" style="margin-right: 15px"></i><el-dropdown-menu slot="dropdown"><el-dropdown-item>查看</el-dropdown-item><el-dropdown-item>新增</el-dropdown-item><el-dropdown-item>删除</el-dropdown-item></el-dropdown-menu></el-dropdown><span>{{userInfo.ename}}</span></el-header><el-container><el-aside width="200px" style="background-color: rgb(238, 241, 246)"><el-menu><el-submenu v-for="p in permissionArr" :index="p.id"><template slot="title"><i :class="p.icon"></i>{{p.title}}</template><el-menu-item-group><el-menu-item v-for="sp in p.subMenu" :index="sp.id"@click="addTabs(sp)">{{sp.title}}</el-menu-item></el-menu-item-group></el-submenu></el-menu></el-aside><el-main><el-tabs v-model="editableTabsValue" type="card" closable @tab-remove="removeTab"><el-tab-panekey="asd"label="欢迎页"name="asd"><iframe src="http://www.douyu.com" style="border: none;width: 99%;height: 600px;"></iframe></el-tab-pane><el-tab-panev-for="(item, index) in editableTabs":key="item.id":label="item.title":name="item.id"><iframe :src="item.content" style="border: none;width: 99%;height: 600px;"></iframe></el-tab-pane></el-tabs></el-main></el-container></el-container>
</div>
<script>$.get("/ssm/emp/getInfo", function (backData) {app.userInfo = backData.data.userInfoapp.permissionArr = backData.data.permissionInfo})var app = new Vue({el: "#app",data: {tableData: [],editableTabsValue: "asd",editableTabs: [],userInfo: {},permissionArr: [],},methods: {addTabs(data) {if (this.editableTabs.indexOf(data) < 0) {console.log(this.editableTabs)this.editableTabs.push(data);}this.editableTabsValue = data.id;},removeTab(targetName) {let tabs = this.editableTabs;let activeName = this.editableTabsValue;if (activeName === targetName) {tabs.forEach((tab, index) => {if (tab.id === targetName) {let nextTab = tabs[index + 1] || tabs[index - 1];if (nextTab) {activeName = nextTab.id;}}});}this.editableTabsValue = activeName;this.editableTabs = tabs.filter(tab => tab.id !== targetName);},}})
</script>
</body>
</html>

在这个页面中,我们点击业务管理中的学生管理,就可以在右侧访问学生管理的界面。其他模块可以自行添加

进入学生管理页面,我们首先要在页面中展示学生信息

先在webapp下新建views/student/list.html

2.list.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="../../js/vue.js"></script><script src="../../js/jquery.min.js"></script><!-- 引入样式 --><link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css"><!-- 引入组件库 --><script src="https://unpkg.com/element-ui/lib/index.js"></script>
</head>
<body>
<div id="app"><el-input v-model="queryInfo.name" placeholder="请输入名字" style="display: inline-block;width: 200px;"></el-input><el-input v-model="queryInfo.minAge" placeholder="请输入最小年龄"style="display: inline-block;width: 200px;"></el-input><el-input v-model="queryInfo.maxAge" placeholder="请输入最大年龄"style="display: inline-block;width: 200px;"></el-input><el-button type="primary" icon="el-icon-search" @click="searchData()">搜索</el-button><el-button type="primary">上传<i class="el-icon-upload el-icon--right"></i></el-button><el-button type="primary">下载<i class="el-icon-download el-icon--right"></i></el-button><el-button type="success" round @click="openAddStu()">添加学生</el-button><el-table:data="tableData"borderstyle="width: 100%"><el-table-columnprop="id"label="编号"></el-table-column><el-table-columnprop="name"label="姓名"></el-table-column><el-table-columnprop="age"label="年龄"></el-table-column><el-table-columnprop="address"label="地址"></el-table-column><el-table-columnlabel="班级"><template slot-scope="scope">{{scope.row.grade.gname}}</template></el-table-column><el-table-columnlabel="头像"><template slot-scope="scope"><img v-bind:src="scope.row.headImg" width="50px"/></template></el-table-column><el-table-columnlabel="操作"><template slot-scope="scope"><el-button @click="deleteStudent(scope.row.id)" type="danger" icon="el-icon-delete" circle></el-button><el-button @click="openUpdateStu(scope.row.id)" type="primary" icon="el-icon-edit" circle></el-button></template></el-table-column></el-table><el-pagination@size-change="handleSizeChange"@current-change="handleCurrentChange":current-page="1":page-sizes="[5, 10, 15, 20]":page-size="5"layout="total, sizes, prev, pager, next, jumper":total="t"></el-pagination><el-dialog :title="titlename" :visible.sync="dialogFormVisible"><el-form :model="stuInfo" :rules="rules" ref="stuInfo"><el-form-item label="学生姓名" prop="sname"><el-input v-model="stuInfo.sname" autocomplete="off"></el-input></el-form-item><el-form-item label="学生年龄" prop="sage"><el-input v-model="stuInfo.sage" autocomplete="off"></el-input></el-form-item><el-form-item label="学生地址" prop="saddress"><el-input v-model="stuInfo.saddress" autocomplete="off"></el-input></el-form-item><el-form-item label="学生班级" prop="gid"><el-select placeholder="请选择班级" v-model="stuInfo.gid"><el-option v-for="g in gradeArr" :label="g.gname" :value="g.id"></el-option></el-select></el-form-item></el-form><div slot="footer" class="dialog-footer"><el-button @click="dialogFormVisible = false">取 消</el-button><el-button type="primary" @click="addStudent()">确 定</el-button></div></el-dialog>
</div><script>var app = new Vue({el: "#app",data: {titlename: "",dialogFormVisible: false,queryInfo: {},stuInfo: {},tableData: [],gradeArr: [],size: 5,t: 100,rules: {sname: [{required: true, message: '请输入姓名', trigger: 'blur'},],sage: [{required: true, message: '请输入年龄', trigger: 'blur'},],saddress: [{required: true, message: '请输入地址', trigger: 'blur'},],gid: [{required: true, message: '请选择班级', trigger: 'blur'},]}},methods: {openUpdateStu(id) {//请求班级的数据$.get("/ssm/grade/list", function (backData) {app.gradeArr = backData.data$.get("/ssm/stu/get/" + id, function (backData) {app.stuInfo = backData.dataapp.titlename = "修改学生"app.dialogFormVisible = true})})},addStudent() {this.$refs["stuInfo"].validate((valid) => {if (valid) {var path = app.titlename === "添加学生" ? "/ssm/stu/add" : "/ssm/stu/update"//发送ajax请求到后台$.post(path, app.stuInfo, function (backData) {if (backData.code == 1) {app.$message({type: 'success',message: '操作成功!'});window.location.reload()} else {app.$message({type: 'danger',message: '操作失败!'});}})}});},openAddStu() {//请求班级的数据$.get("/ssm/grade/list", function (backData) {app.gradeArr = backData.dataapp.stuInfo = {}app.titlename = "添加学生"app.dialogFormVisible = true})},deleteStudent(id) {this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {confirmButtonText: '确定',cancelButtonText: '取消',type: 'warning'}).then(() => {$.get("/ssm/stu/delete/" + id, function (backData) {if (backData.code === 1) {app.$message({type: 'success',message: '删除成功!'});window.location.reload()} else {app.$message({type: 'danger',message: '删除失败!'});}});});},handleSizeChange(val) {app.size = valgetStudentData(1, app.size)},handleCurrentChange(val) {getStudentData(val, app.size)},searchData() {getStudentData(1, app.size)}}})function getStudentData(a, b) {app.queryInfo.pageNo = a;app.queryInfo.pageCount = b;$.post("/ssm/stu/query", app.queryInfo, function (backData) {app.tableData = backData.data.currentDataapp.t = backData.data.totalCount})}getStudentData(1, 5)
</script>
</body>
</html>

在数据正常展示时,页面效果如下

在这里插入图片描述

接下来进行数据的增删改查操作,此处只进行流程分析,源码在文章后边

3流程分析

当我们进入到学生管理界面,首先需要查询数据库中的数据,并且把他显示在页面当中

我们使用的是ElementUI提供的分页查询的代码。首先要发送post请求到"/ssm/stu/query"获取数据

  1. 在controller文件夹下创建StudentController用来处理请求的分发其中包括有
    1. 获取全部学生数据
    2. 根据ID删除学生
    3. 添加学生
    4. 根据ID获取单个学生
    5. 更新学生信息
  2. 在StudentController接收到请求时会调用service层的方法
  3. 首先有一个StudentService接口其中写了上述的五个方法
  4. 在新建StudentService的实现类,其中写的是业务处理的具体流程
  5. 在实现类中,我们想要实现业务需求,我们就要去调用mapper层中的方法去连接数据库进行数据的读取
  6. mapper层又要去找对应的mapper.xml配置文件进行sql语句的编写

所以这是一个连贯的过程,这里不再过多赘述

当获取到的数据响应到页面,这时一个完整的业务流程才算完毕

我们在实现类中可能会遇到实体类传参所以还要新建一些实体类,这些类放在pojo文件夹下

源码如下

4.controller层

4.1StudentController

package com.aaa.ssm.controller;import com.aaa.ssm.pojo.vo.StudentQuery;
import com.aaa.ssm.pojo.vo.StudentVO;
import com.aaa.ssm.result.AjaxResult;
import com.aaa.ssm.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @Author Grg* @Date 2023/9/18 17:49* @PackageName:com.aaa.ssm.controller* @ClassName: StudentController* @Description: 又是码代码的一天* @Version plus max 宇宙无敌终极版本*/@RestController
@RequestMapping("stu")
public class StudentController {@Autowiredprivate StudentService studentService;@RequestMapping("query")public AjaxResult queryStudent(StudentQuery query) {return studentService.queryStudent(query);}@RequestMapping("delete/{id}")public AjaxResult deleteStudent(@PathVariable("id") Integer id) {return studentService.deleteStudent(id);}@RequestMapping("add")public AjaxResult addStudent(StudentVO studentVO) {return studentService.addStudent(studentVO);}@RequestMapping("get/{id}")public AjaxResult getStudentById(@PathVariable("id") Integer id) {return studentService.getStudentById(id);}@RequestMapping("update")public AjaxResult updateStudent(StudentVO studentVO) {return studentService.updateStudent(studentVO);}}

4.2EmpController

package com.aaa.ssm.controller;import com.aaa.ssm.result.AjaxResult;
import com.aaa.ssm.service.EmpService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @Author Grg* @Date 2023/9/17 14:49* @PackageName:com.aaa.ssm.controller* @ClassName: EmpController* @Description: 又是码代码的一天* @Version plus max 宇宙无敌终极版本*/
@RestController
@RequestMapping("emp")
public class EmpController {@Autowiredprivate EmpService empService;@RequestMapping("login")public AjaxResult login(String username, String password) {return empService.login(username, password);}@RequestMapping("getInfo")public AjaxResult getInfo() {return empService.getInfo();}
}

4.3GradeController

package com.aaa.ssm.controller;
import com.aaa.ssm.result.AjaxResult;
import com.aaa.ssm.service.GradeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @Author Grg* @Date 2023/9/18 17:49* @PackageName:com.aaa.ssm.controller* @ClassName: StudentController* @Description: 又是码代码的一天* @Version plus max 宇宙无敌终极版本*/@RestController
@RequestMapping("grade")
public class GradeController {@Autowiredprivate GradeService gradeService;@RequestMapping("list")public AjaxResult queryStudent() {return gradeService.listAllGrade();}
}

5.mapper层

5.1EmpMapper

package com.aaa.ssm.mapper;
import com.aaa.ssm.pojo.dto.EmpDTO;
import com.aaa.ssm.pojo.dto.LoginDTO;
import org.apache.ibatis.annotations.Param;
/*** @Author Grg* @Date 2023/9/17 15:02* @PackageName:com.aaa.ssm.mapper* @ClassName: EmpMapper* @Description: 又是码代码的一天* @Version plus max 宇宙无敌终极版本*/
public interface EmpMapper {LoginDTO login(@Param("username")String username,@Param("password") String password);EmpDTO getEmpInfoByEid(Integer eid);
}

5.2GradeMapper

package com.aaa.ssm.mapper;
import com.aaa.ssm.pojo.dto.GradeDTO;
import java.util.List;
/*** @Author Grg* @Date 2023/9/19 15:02* @PackageName:com.aaa.ssm.mapper* @ClassName: GradeMapper* @Description: 又是码代码的一天* @Version plus max 宇宙无敌终极版本*/
public interface GradeMapper {List<GradeDTO> listAllGrades();
}

5.3PermissionMapper

package com.aaa.ssm.mapper;
import com.aaa.ssm.pojo.dto.PermissionDTO;
import java.util.List;
/*** @Author Grg* @Date 2023/9/18 15:13* @PackageName:com.aaa.ssm.mapper* @ClassName: PermissionMapper* @Description: 又是码代码的一天* @Version plus max 宇宙无敌终极版本*/
public interface PermissionMapper {List<PermissionDTO> listSuperAdminPermissions();List<PermissionDTO> listNormalAdminPermissions(Integer rid);
}

5.4StudentMapper

package com.aaa.ssm.mapper;
import com.aaa.ssm.pojo.dto.StudentDTO;
import com.aaa.ssm.pojo.vo.StudentQuery;
import com.aaa.ssm.pojo.vo.StudentVO;
import java.util.List;
/*** @Author Grg* @Date 2023/9/18 17:55* @PackageName:com.aaa.ssm.mapper* @ClassName: StudentMapper* @Description: 又是码代码的一天* @Version plus max 宇宙无敌终极版本*/
public interface StudentMapper {List<StudentDTO> queryStudentByQuery(StudentQuery query);Long queryStudentTotalCount(StudentQuery query);int deleteStudentById(Integer id);int addStudent(StudentVO studentVO);StudentVO getStudentById(Integer id);int uptateStudent(StudentVO studentVO);
}

6.pojo

6.1dto

6.1.1DeptDTO

package com.aaa.ssm.pojo.dto;
import lombok.Data;
import java.io.Serializable;
/*** @Author Grg* @Date 2023/9/17 15:22* @PackageName:com.aaa.ssm.pojo.dto* @ClassName: DeptDTO* @Description: 又是码代码的一天* @Version plus max 宇宙无敌终极版本*/
@Data
public class DeptDTO implements Serializable {private Integer id;private String dname;private String other;private Integer state;
}

6.1.2EmpDTO

package com.aaa.ssm.pojo.dto;
import lombok.Data;
import java.io.Serializable;/*** @Author Grg* @Date 2023/9/17 15:20* @PackageName:com.aaa.ssm.pojo.dto* @ClassName: EmpDTO* @Description: 又是码代码的一天* @Version plus max 宇宙无敌终极版本*/
@Data
public class EmpDTO implements Serializable {private Integer id;private String ename;private String hiredate;private String telephone;private DeptDTO dept;private RoleDTO role;
}

6.2vo

6.2.1StudentVO

package com.aaa.ssm.pojo.vo;
import lombok.Data;
import java.io.Serializable;
/*** @Author Grg* @Date 2023/9/19 15:45* @PackageName:com.aaa.ssm.pojo.vo* @ClassName: StudentVO* @Description: 又是码代码的一天* @Version plus max 宇宙无敌终极版本*/
@Data
public class StudentVO implements Serializable {private Integer id;private String sname;private Integer sage;private String saddress;private Integer gid;
}

当然不止这些,还有好几个(懒得写了,实在头皮发麻)这些类主要就是用来接收参数用的

这一块需要注意的是,我们的数据库中其实是有外键的,虽然是逻辑外键。我们在新建类中可以看到,在类中有私有的成员对象,我们使用这种方法来凸显外键的作用

剩下的在这里就放张截图叭

在这里插入图片描述

7.result

用来接收AJAX请求返回结果

AjaxResult

package com.aaa.ssm.result;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;/*** @Author Grg* @Date 2023/8/28 15:58* @PackageName:com.grg.Result* @ClassName: AjaxResult* @Description: 又是码代码的一天* @Version plus max 宇宙无敌终极版本*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AjaxResult {private Integer code;private String msg;private Object data;public static AjaxResult success() {return new AjaxResult(1,"操作成功",null);}public static AjaxResult success(Object data) {return new AjaxResult(1,"操作成功",data);}public static AjaxResult error() {return new AjaxResult(2,"操作失败",null);}public static AjaxResult error(String msg) {return new AjaxResult(2,msg,null);}}

8.service

8.1impl实现类

8.1.1EmpServiceImpl

package com.aaa.ssm.service.impl;import com.aaa.ssm.mapper.EmpMapper;
import com.aaa.ssm.mapper.PermissionMapper;
import com.aaa.ssm.pojo.dto.EmpDTO;
import com.aaa.ssm.pojo.dto.LoginDTO;
import com.aaa.ssm.pojo.dto.PermissionDTO;
import com.aaa.ssm.result.AjaxResult;
import com.aaa.ssm.service.EmpService;
import com.aaa.ssm.sysconst.DeptState;
import com.aaa.ssm.sysconst.EmpState;
import com.aaa.ssm.util.PermissionUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;/*** @Author Grg* @Date 2023/9/17 15:00* @PackageName:com.aaa.ssm.service.impl* @ClassName: EmpServiceImpl* @Description: 又是码代码的一天* @Version plus max 宇宙无敌终极版本*/
@Service
public class EmpServiceImpl implements EmpService {@Autowiredprivate EmpMapper empMapper;@Autowiredprivate PermissionMapper permissionMapper;@Autowiredprivate HttpSession session;@Overridepublic AjaxResult login(String username, String password) {//1.验证账号密码是否正确LoginDTO login = empMapper.login(username, password);//1.5账号的状态是什么 state 0在职  1冻结  2离职if (login == null) {return AjaxResult.error("账号或者密码错误");}if (login.getState() == EmpState.EMP_DONGJIE) {return AjaxResult.error("账号被冻结");}if (login.getState() == EmpState.EMP_LIZHI) {return AjaxResult.error("员工已经离职 联系管理员");}//2.如果正确 获取员工编号 查询员工信息Integer eid = login.getEid();EmpDTO empInfo = empMapper.getEmpInfoByEid(eid);if (empInfo.getDept().getState() == DeptState.DEPT_STATE_BILE) {return AjaxResult.error("部门已倒闭 请联系主管");}//登录成功//将当前用户信息存储近Session中session.setAttribute("emp", empInfo);return AjaxResult.success();}@Overridepublic AjaxResult getInfo() {EmpDTO empInfo = (EmpDTO) session.getAttribute("emp");HashMap<Object, Object> map = new HashMap<>();map.put("userInfo", empInfo);Integer state = empInfo.getRole().getState();if (state == 1) {return AjaxResult.success(map);}List<PermissionDTO> permissionDTOS = null;Integer rid = empInfo.getRole().getId();if (rid == 1) {//超级管理员权限permissionDTOS = permissionMapper.listSuperAdminPermissions();} else {//普通管理员permissionDTOS = permissionMapper.listNormalAdminPermissions(rid);}List<PermissionDTO> data = PermissionUtil.handlerData(permissionDTOS);map.put("permissionInfo", data);return AjaxResult.success(map);}
}

8.1.2GradeServiceImpl

package com.aaa.ssm.service.impl;import com.aaa.ssm.mapper.GradeMapper;
import com.aaa.ssm.pojo.dto.GradeDTO;
import com.aaa.ssm.result.AjaxResult;
import com.aaa.ssm.service.GradeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;/*** @Author Grg* @Date 2023/9/19 15:00* @PackageName:com.aaa.ssm.service.impl* @ClassName: GradeServiceImpl* @Description: 又是码代码的一天* @Version plus max 宇宙无敌终极版本*/
@Service
public class GradeServiceImpl implements GradeService {@Autowiredprivate GradeMapper gradeMapper;@Overridepublic AjaxResult listAllGrade() {List<GradeDTO> gradeDTOS = gradeMapper.listAllGrades();return AjaxResult.success(gradeDTOS);}
}

8.1.3StudentServiceImpl

package com.aaa.ssm.service.impl;import com.aaa.ssm.mapper.StudentMapper;
import com.aaa.ssm.pojo.dto.StudentDTO;
import com.aaa.ssm.pojo.vo.StudentQuery;
import com.aaa.ssm.pojo.vo.StudentVO;
import com.aaa.ssm.result.AjaxResult;
import com.aaa.ssm.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.HashMap;
import java.util.List;/*** @Author Grg* @Date 2023/9/18 17:53* @PackageName:com.aaa.ssm.service.impl* @ClassName: StudentImpl* @Description: 又是码代码的一天* @Version plus max 宇宙无敌终极版本*/
@Service
public class StudentServiceImpl implements StudentService {@Autowiredprivate StudentMapper studentMapper;@Overridepublic AjaxResult queryStudent(StudentQuery query) {List<StudentDTO> studentDTOS = studentMapper.queryStudentByQuery(query);Long totalCount = studentMapper.queryStudentTotalCount(query);HashMap<Object, Object> map = new HashMap<>();map.put("currentData", studentDTOS);map.put("totalCount", totalCount);return AjaxResult.success(map);}@Overridepublic AjaxResult deleteStudent(Integer id) {int i = studentMapper.deleteStudentById(id);if (i > 0) {return AjaxResult.success();} else {return AjaxResult.error("删除失败");}}@Overridepublic AjaxResult addStudent(StudentVO studentVO) {System.out.println(studentVO);int i = studentMapper.addStudent(studentVO);if (i > 0) {return AjaxResult.success();} else {return AjaxResult.error("添加失败");}}@Overridepublic AjaxResult getStudentById(Integer id) {StudentVO student = studentMapper.getStudentById(id);return AjaxResult.success(student);}@Overridepublic AjaxResult updateStudent(StudentVO studentVO) {int i = studentMapper.uptateStudent(studentVO);if (i > 0) {return AjaxResult.success();} else {return AjaxResult.error("修改失败");}}
}

8.2EmpService

package com.aaa.ssm.service;import com.aaa.ssm.result.AjaxResult;/*** @Author Grg* @Date 2023/9/17 14:58* @PackageName:com.aaa.ssm.service* @ClassName: EmpService* @Description: 又是码代码的一天* @Version plus max 宇宙无敌终极版本*/
public interface EmpService {AjaxResult login(String username, String password);AjaxResult getInfo();
}

8.3GradeService

package com.aaa.ssm.service;import com.aaa.ssm.result.AjaxResult;/*** @Author Grg* @Date 2023/9/19 14:59* @PackageName:com.aaa.ssm.service* @ClassName: GradeService* @Description: 又是码代码的一天* @Version plus max 宇宙无敌终极版本*/
public interface GradeService {AjaxResult listAllGrade();
}

8.4StudentService

package com.aaa.ssm.service;import com.aaa.ssm.pojo.vo.StudentQuery;
import com.aaa.ssm.pojo.vo.StudentVO;
import com.aaa.ssm.result.AjaxResult;/*** @Author Grg* @Date 2023/9/18 17:52* @PackageName:com.aaa.ssm.service* @ClassName: StudentService* @Description: 又是码代码的一天* @Version plus max 宇宙无敌终极版本*/
public interface StudentService {AjaxResult queryStudent(StudentQuery query);AjaxResult deleteStudent(Integer id);AjaxResult addStudent(StudentVO studentVO);AjaxResult getStudentById(Integer id);AjaxResult updateStudent(StudentVO studentVO);
}

9.util工具类

9.1PermissionUtil

这个是在登陆时,根据登录账号的权限不同 展示的数据和能进行的操作也不一样

package com.aaa.ssm.util;import com.aaa.ssm.pojo.dto.PermissionDTO;import java.util.ArrayList;
import java.util.List;/*** @Author Grg* @Date 2023/9/18 15:58* @PackageName:com.aaa.ssm.util* @ClassName: PermissionUtil* @Description: 又是码代码的一天* @Version plus max 宇宙无敌终极版本*/
public class PermissionUtil {public static List<PermissionDTO> handlerData(List<PermissionDTO> permissionDTOS){ArrayList<PermissionDTO> data = new ArrayList<>();for (PermissionDTO permissionDTO : permissionDTOS) {if (permissionDTO.getPid() == 0) {data.add(permissionDTO);}}for (PermissionDTO permissionDTO : permissionDTOS) {Integer pid = permissionDTO.getPid();for (PermissionDTO datum : data) {if (datum.getId().equals(pid)) {datum.getSubMenu().add(permissionDTO);}}}return data;}
}

10.mapper.xml

10.1EmpMapper.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.aaa.ssm.mapper.EmpMapper"><select id="login" resultType="com.aaa.ssm.pojo.dto.LoginDTO">select * from t_emp_login where username = #{username} and password = #{password};</select><resultMap id="empInfo" type="empDTO"><id column="id" property="id"></id><result column="ename" property="ename"></result><result column="hiredate" property="hiredate"></result><result column="telephone" property="telephone"></result><association property="dept" javaType="deptDTO"><id column="did" property="id"></id><result column="dname" property="dname"></result><result column="dstate" property="state"></result></association><association property="role" javaType="roleDTO"><id column="rid" property="id"></id><result column="rname" property="rname"></result><result column="rstate" property="state"></result></association></resultMap><select id="getEmpInfoByEid" resultMap="empInfo">SELECT e.id,e.ename,e.hiredate,e.telephone,d.id    did,d.dname,d.other,d.state dstate,r.id    rid,r.rname,r.state rstatefrom t_emp_info eLEFT JOIN t_dept d on e.did = d.idLEFT JOIN t_role r on e.rid = r.idwhere e.id = #{eid};</select>
</mapper>

10.2GradeMapper

<?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.aaa.ssm.mapper.GradeMapper"><select id="listAllGrades" resultType="com.aaa.ssm.pojo.dto.GradeDTO">select *from t_gradewhere state = 0;</select>
</mapper>

10.3PermissionMapper.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.aaa.ssm.mapper.PermissionMapper"><select id="listSuperAdminPermissions" resultType="com.aaa.ssm.pojo.dto.PermissionDTO">select id, pid, type, pname title, url content, state, iconfrom t_perm</select><select id="listNormalAdminPermissions" resultType="com.aaa.ssm.pojo.dto.PermissionDTO">select p.id, p.pid, p.type, p.pname title, p.url content, p.state, p.iconfrom t_rp tpleft join t_perm p on tp.pid = p.idwhere tp.rid = #{rid}and p.state = 0</select>
</mapper>

10.4StudentMapper.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.aaa.ssm.mapper.StudentMapper"><resultMap id="StudentMap" type="com.aaa.ssm.pojo.dto.StudentDTO"><id column="id" property="id"></id><result column="name" property="name"></result><result column="age" property="age"></result><result column="address" property="address"></result><result column="headImg" property="headImg"></result><association property="grade" javaType="com.aaa.ssm.pojo.dto.GradeDTO"><id column="tid" property="id"></id><result column="gname" property="gname"></result><result column="state" property="state"></result></association></resultMap><sql id="queryStu"><where><if test="name != null and '' != name">and ts.name like concat('%',#{name},'%')</if><if test="minAge != null and '' != minAge">and ts.age &gt; #{minAge}</if><if test="maxAge != null and '' != maxAge">and ts.age &lt; #{maxAge}</if></where></sql><insert id="addStudent">insert into t_student ( name, age, address, gid) values (#{sname},#{sage},#{saddress},#{gid})</insert><update id="uptateStudent">update t_studentSET name    = #{sname},age     = #{sage},address = #{saddress},gid= #{gid}where id = #{id}</update><delete id="deleteStudentById">deletefrom t_studentwhere id = #{id}</delete><select id="queryStudentByQuery" resultMap="StudentMap">select ts.id,ts.name,ts.age,ts.address,ts.headImg,tg.id tid,tg.gname,tg.statefrom t_student tsleft join t_grade tgon ts.gid = tg.id<include refid="queryStu"></include>limit #{index},#{pageCount}</select><select id="queryStudentTotalCount" resultType="java.lang.Long">select count(*) from t_student ts<include refid="queryStu"></include></select><select id="getStudentById" resultType="com.aaa.ssm.pojo.vo.StudentVO">select id, name sname, age sage, address saddress, gidfrom t_studentwhere id = #{id}</select>
</mapper>
http://www.yidumall.com/news/15966.html

相关文章:

  • 广州做网站seo自动优化工具
  • 常州高端网站建设永久免费客服系统软件
  • 静态网站生成北京网站营销seo方案
  • 专业制作公司网站公司app开发制作
  • 体验做愛网站郑州营销型网站建设
  • 网站首页地址是什么友情链接有哪些作用
  • 温州企业网站建设要多少钱万能浏览器
  • 建设银行乌鲁木齐招聘网站2023年8月疫情恢复
  • 沈阳公司网站设计河南seo外包
  • 论坛网站建设视频教程南京seo外包平台
  • 专业创建网站公司seo海外推广
  • 免费软件你懂我意思正能量windows优化软件哪个好
  • web网站开发实训网站关键字优化软件
  • 在什么网站做推广天天网站
  • 深圳市网站推广公司百度账号登录
  • 蛋品 东莞网站建设传媒公司
  • 金华高端网站建设公司厦门网站推广优化哪家好
  • 电子商务企业网站建设计划书郑州seo软件
  • 网站建设费入什么科目裂变营销
  • dede旅游网站seo店铺描述
  • 珠海城乡建设委员会的网站如何在百度上做推广
  • 百度经验seo排名赚app官网
  • 移动端网站模板在线网站流量查询
  • 温州网站关键词排名优化游戏代理是怎么赚钱的如何代理游戏
  • 党团建设网站今日的头条新闻
  • 成立公司后需要做的事情关键词推广优化app
  • 穿着丝袜做会更爽网站公司网页制作流程
  • 泉州做外贸网站搜索引擎查重
  • 专业建设网站应该怎么做百度获客
  • 网站设计主题有哪些有没有专门做营销的公司