SSM基于上述环境实现简单CUDA操作

news/2024/5/22 3:34:58/文章来源:https://blog.csdn.net/qq_41950447/article/details/128035285

目录

1. 结构

2. 环境:

3. controller

4. mapper

5. service

6. serviceImpl

7. mapper.xml

8. emplist.html

9. update

1. 结构

 

2. 环境:

SSM整合 Spring SprintMVC Mybatisicon-default.png?t=M85Bhttps://blog.csdn.net/qq_41950447/article/details/128033971

3. controller

package com.zt.ssm.controller;import com.github.pagehelper.PageInfo;
import com.zt.ssm.pojo.Emp;
import com.zt.ssm.service.EmpService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;import javax.jws.WebParam;
import java.util.List;@Controller
public class EmpController {@Autowiredprivate EmpService empService;@RequestMapping(value = "/emplist", method = RequestMethod.GET)public String EmpsAll(Model model){List<Emp> emplist = empService.getEmpsList();model.addAttribute("emplist",emplist);return "emplist";}/**** 删除用户信息** @问题:* 没有设置隐藏域 会报 Request method 'POST' not supported* 没有设置处理请球方法put和delete的hiddenhttpmethodfilter过滤器 会报Request method 'POST' not supported错误* 重定向的时候 没有加斜线!!!!"redirect:/emplist"* @return*/@RequestMapping(value = "/emplist/{empId}", method = RequestMethod.DELETE)public String deleteEmp(@PathVariable("empId") Integer empId){System.out.println("=========================");System.out.println(empId);System.out.println("=========================");empService.deleteEmp(empId);
//        这里记得加斜线return "redirect:/emplist";}/*** 更新数据*/@RequestMapping(value = "emplist" ,method = RequestMethod.PUT)public String updateEmp(@RequestParam("empId") Integer empId,@RequestParam("empName") String empName,@RequestParam("age") Integer age ,@RequestParam("gender")String gender,@RequestParam("email") String email ){Emp emp = new Emp(empId,empName,age,gender,email);empService.updateEmp(emp);System.out.println(emp);return "redirect:/emplist";}//数据回显@RequestMapping(value = "emplist/{empId}" , method = RequestMethod.GET)public String getEmpById(@PathVariable("empId")Integer empId, Model model){Emp emp  = empService.getEmpById(empId);model.addAttribute("emp", emp);return "updateEmp";}/**** 分页查询*/@RequestMapping(value = "emplist/page/{pageNum}" , method = RequestMethod.GET)public String getEmpByPageNum(@PathVariable("pageNum")Integer pageNum, Model model){PageInfo<Emp> pageInfo = empService.getEmpPage(pageNum);model.addAttribute("page", pageInfo);System.out.println(pageInfo);return "emplist";}}

4. mapper

package com.zt.ssm.mapper;import com.zt.ssm.pojo.Emp;
import org.apache.ibatis.annotations.Param;import java.util.List;public interface EmpMapper {// 获取所有员工列表   员工列表功能List<Emp> getEmpsList();//    根据id删除员工信息void deleteEmp(@Param("empId") Integer empId);
//  修改员工信息void updateEmp(Emp emp);
//   更新时数据回显Emp getEmpById(@Param("empId") Integer empId);
}

pojo

package com.zt.ssm.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class Emp {private Integer empId;private String empName;private Integer age;private String gender;private String email;
}

5. service

package com.zt.ssm.service;import com.github.pagehelper.PageInfo;
import com.zt.ssm.pojo.Emp;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;import java.util.List;public interface EmpService {/*** 获取所有列表* @return*/List<Emp> getEmpsList();/*** 根据id删除* @param empId*/void deleteEmp(@Param("empId") Integer empId);/*** 修改员工信息*/void updateEmp(Emp emp);/*** 数据回显*/Emp getEmpById(@Param("empId") Integer empId);/*** 分页*/PageInfo<Emp> getEmpPage(Integer pageNum);
}

6. serviceImpl

package com.zt.ssm.service.impl;import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zt.ssm.mapper.EmpMapper;
import com.zt.ssm.pojo.Emp;
import com.zt.ssm.service.EmpService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;import java.util.List;@Service
@Transactional
public class EmpServiceImpl implements EmpService {@Autowiredprivate EmpMapper empMapper;@Overridepublic List<Emp> getEmpsList() {return empMapper.getEmpsList();}@Overridepublic void deleteEmp(Integer empId) {empMapper.deleteEmp(empId);}@Overridepublic void updateEmp(Emp emp) {empMapper.updateEmp(emp);}@Overridepublic Emp getEmpById(Integer empId) {return empMapper.getEmpById(empId);}@Overridepublic PageInfo<Emp> getEmpPage(Integer pageNum) {PageHelper.startPage(pageNum, 3);List<Emp> empsList = empMapper.getEmpsList();//获取分页相关数据PageInfo<Emp> page = new PageInfo<>(empsList, 3);return page;}
}

7. 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"><!-- namespace :对应的mapper接口 -->
<mapper namespace="com.zt.ssm.mapper.EmpMapper"><!--    获取所有员工列表List<Emp> getEmpsList();
--><select id="getEmpsList" resultType="emp">select  * from t_emp</select>
<!--    void deleteEmp(@Param("empId") Integer empId);--><delete id="deleteEmp">delete  from t_emp where emp_id = #{empId}</delete><!--    void updateEmp(@Param("empId") Integer empId);--><update id="updateEmp" >update t_emp set emp_name = #{empName}, age=#{age}, gender=#{gender}, email={email} where empId=#{empId}</update><!--    Emp getEmpById(@Param("empId") Integer empId);--><select id="getEmpById" resultType="emp">select * from t_emp where emp_id=#{empId}</select>
</mapper>

8. 页面emplist.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>emplist</title><script type="text/javascript" th:src="@{/static/js/vue.js}"></script>
</head>
<body>
<h1>emploee</h1><div id="table"><table  border="1" cellpadding="0" cellspacing="0" style="text-align: center;"><tr id="tr1"><th colspan="6">员工列表</th></tr><tr id="tr2"><th>序号</th><th>姓名</th><th>年龄</th><th>性别</th><th>邮箱</th><th>操作</th></tr><tr th:each="emp, status:${page.list}" id="tr3"><!--        status.count获取循环的次数--><td th:text="${status.count}"></td><td th:text="${emp.empName}"></td><td th:text="${emp.age}"></td><td th:text="${emp.gender}"></td><td th:text="${emp.email}"></td><td><a @click="deleteEmp" th:href="@{'/emplist/'+${emp.empId}}">删除</a><a th:href="@{'/emplist/'+${emp.empId}}">修改</a></td></tr></table><a th:if="${page.hasPreviousPage}" th:href="@{/emplist/page/1}">首页</a>
<!--   model里的数据拼接到路径中 路径拼接--><a th:if="${page.hasPreviousPage}" th:href="@{'/emplist/page/'+${page.prePage}}">上一页</a><span th:each="nn:${page.navigatepageNums}"><a th:if="${page.pageNum == nn}" style="color: red;" th:href="@{'/emplist/page/'+${nn}}" th:text="'['+${nn}+']'"></a><a th:if="${page.pageNum != nn}"  th:href="@{'/emplist/page/'+${nn}}" th:text="${nn}"></a></span><a th:if="${page.hasNextPage}" th:href="@{'/emplist/page/'+${page.nextPage}}">下一页</a><a th:if="${page.hasNextPage}" th:href="@{'/emplist/page/'+${page.pages}}">末页</a><!-- 作用:通过超链接控制表单的提交,将post请求转换为delete请求 --><form id="delete_form" method="post"><!-- HiddenHttpMethodFilter要求:必须传输_method请求参数,并且值为最终的请求方式 --><input type="hidden" name="_method" value="delete"/></form></div><script type="text/javascript">var vue = new Vue({el:"#table",methods:{//event表示当前事件deleteEmp:function (event) {//通过id获取表单标签var delete_form = document.getElementById("delete_form");//将触发事件的超链接的href属性为表单的action属性赋值delete_form.action = event.target.href;console.log("delete_form.action")console.log(delete_form.action)console.log("delete_form.action")//提交表单delete_form.submit();//阻止超链接的默认跳转行为event.preventDefault();}}});
</script>
</body>
</html><!--<style>--><!--    #table{-->
<!--    border: 1px solid black;-->
<!--    width: 100%;-->
<!--    border-collapse:collapse;-->
<!--    }-->
<!--    #tr1{-->
<!--    border: 1px solid black;-->
<!--    }-->
<!--    #tr2{-->
<!--        border: 1px solid black;-->
<!--    }-->
<!--    #tr3{-->
<!--        border: 1px solid black;-->
<!--    }-->
<!--</style>-->

9. update

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns="http://www.w3.org/1999/html">
<head><meta charset="UTF-8"><title>UpdateEmp</title>
</head>
<body>
<form th:method="put" th:action="@{/emplist}"><input type="hidden" name="_method" value="put">empId:<input type="text" name="empId" th:value="${emp.empId}"></br>empName:<input type="text" name="empName" th:value="${emp.empName}"></br>age:<input type="text" name="age" th:value="${emp.age}"></br>gender:<input type="text" name="gender" th:value="${emp.gender}"></br>email:<input type="text" name="email" th:value="${emp.email}"></br>
<input type="submit" th:value="提交"></form>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_36532.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android -- 每日一问:Activity的启动模式(launchMode)有哪些,有什么区别?

经典回答 这应该是一道很虐人的面试题&#xff0c;很多人都答不上来&#xff0c;很多人根本就没有用过。当我发现在被我面试的人中有80%的比例对它不了解时&#xff0c;我找过一些同事讨论是否还有在面试中考查这个问题的必要&#xff0c;得到的回答是“程序员何苦为难程序员”…

2020-RKT

2020-RKT&#xff1a;Relation-Aware Self-Attention for Knowledge Tracing 有代码&#xff1a;https://github.com/shalini1194/RKT 摘要 学生在解决练习的过程中获得技能&#xff0c;每一次这样的互动都对学生解决未来练习的能力有明显的影响。 这种影响表现为:1)互动中涉…

电脑c盘满了怎么清理,快速清理,用这5招

​新买的电脑没用多久&#xff0c;突然发现系统提示磁盘空间不足。点击一看&#xff0c;电脑c盘空间已经爆满变红。当出现这种情况时&#xff0c;很多电脑的运行速度会大大降低&#xff0c;甚至导致部分应用无法正常运行。那么电脑c盘满了怎么清理&#xff1f;如何释放电脑c盘空…

C语言:关键字----switch、case、default(开关语句)

C语言&#xff1a;基础开发----目录 C语言&#xff1a;关键字—32个(分类说明) 有32个关键字详细说明&#xff0c;还有跳转链接&#xff01; 一、开关语句----介绍 开关语句&#xff0c;包括以下四种关键字&#xff1a; switch&#xff1a;开关语句case&#xff1a; 开关语句…

【vim】系统剪切板、vim寄存器之间的复制粘贴操作命令?系统剪切板中的内容复制粘贴到命令行?vim文本中复制粘贴到命令行

一、系统剪切板和文本内容的复制粘贴 1.1 从系统剪切板复制粘贴到文本中 需要操作3次&#xff1a; 分别是英文双引号、一个加号或梅花号&#xff0c;最后是一个p 也即"p 或者直接使用组合键【Shift insert】 1.2 从文本复制粘贴到系统剪切板 也需要操作3次&#xff…

java EE初阶 — 计算机工作原理

文章目录1.操作系统2.操作系统的定位3.进程3.1 进程的基本了解3.2 操作系统内核是如何管理软件资源的3.3 PCB里描述了进程的哪些特征3.3.1 三个较为简单的特征3.3.2 进程的调度属性4.内存管理1.操作系统 操作系统是一个搞管理的软件。 对上要给软件提供稳定的运行环境。对下要…

基于JAVA的鲜花店商城平台【数据库设计、源码、开题报告】

数据库脚本下载地址&#xff1a; https://download.csdn.net/download/itrjxxs_com/86427660 摘要 在互联网不断发展的时代之下&#xff0c;鲜花软件可以为鲜花企业带来更多的发展机会&#xff0c;让企业可以挖掘到更多的潜在用户&#xff0c;同时结合企业的优势就能够为用户…

Swin Transformer目标检测实验——环境配置的步骤和避坑

Swin Transformer1. 网上基础教程&#xff08;带视频讲解&#xff09;2. 配置虚拟环境时遇到的一些问题&#xff08;按操作顺序排列&#xff09;1. 网上基础教程&#xff08;带视频讲解&#xff09; 大家是不是都从b站来的呀&#xff0c;先给你们基础环境的配置和搭配的视频教…

黑马点评--Redis消息队列

Redis消息队列 Redis消息队列实现异步秒杀 消息队列&#xff08;Message Queue&#xff09;&#xff0c;字面意思就是存放消息的队列。最简单的消息队列模型包括3个角色&#xff1a; 消息队列&#xff1a;存储和管理消息&#xff0c;也被称为消息代理&#xff08;Message Br…

【附源码】计算机毕业设计JAVA疫情下的居民管理系统

【附源码】计算机毕业设计JAVA疫情下的居民管理系统 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JAVA…

蒙泰转债上市价格预测

蒙泰转债基本信息转债名称&#xff1a;蒙泰转债&#xff0c;评级&#xff1a;A&#xff0c;发行规模&#xff1a;3.0亿元。正股名称&#xff1a;蒙泰高新&#xff0c;今日收盘价&#xff1a;31.3&#xff0c;转股价格&#xff1a;26.15。当前转股价值 转债面值 / 转股价格 * 正…

有没有把语音转为文字的软件?这几个转换软件你值得收藏

我们在日常的工作和生活中&#xff0c;应该经常会遇到需要将音频转换成文字的情况吧。相信大部分的小伙伴都会选择直接使用转换软件进行音频转文字的操作&#xff0c;但在使用的过程中就会发现&#xff0c;有些软件会在使用次数、音频时长上面有所限制&#xff0c;导致我们会转…

《从零开始:机器学习的数学原理和算法实践》chap1

《从零开始&#xff1a;机器学习的数学原理和算法实践》chap1 学习笔记 文章目录《从零开始&#xff1a;机器学习的数学原理和算法实践》chap1 学习笔记chap1 补基础&#xff1a;不怕学不懂微积分1.1 深入理解导数的本质直观理解复合函数求导1.2 理解多元函数偏导1.3 理解微积分…

【附源码】计算机毕业设计JAVA疫情下智慧社区系统

【附源码】计算机毕业设计JAVA疫情下智慧社区系统 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JAVA …

CorelDRAW2023最新版矢量设计软件

CorelDRAW2023最新版是我比较用的比较好的一款软件&#xff0c;因为其作为一款优秀的矢量设计软件&#xff0c;兼具功能和性能&#xff0c;它是由Corel公司出品的矢量设计工具&#xff0c;被广泛应用于排版印刷、矢量图形编辑、网页设计等行业。CDR软件的优势在于&#xff1a;易…

studio3T import a SQL Database to Mongodb(从mysql中导入数据到mongodb)

具体参考studio3T官方文档&#xff1a;Import a SQL Database to MongoDB in 5 Steps | Studio 3T 1、打开SQL Migration-->选择SQL to MongoDB Migration 2、创建源数据库的连接&#xff08;本文源数据库是mysql&#xff09; 3、选择目标数据库 默认选择当前连接的数据库…

深度学习入门(6)误差反向传播基础---计算图与链式法则

在我的第三篇博文《深度学习入门&#xff08;3&#xff09;神经网络参数梯度的计算方式》中详细介绍了通过微分方式计算神经网络权重参数的梯度。但是数值微分的方式计算梯度效率较低。后续博文会介绍另外一种更加高效的梯度计算方式---误差的反向传播。 这篇文章介绍的是误差…

新知实验室 腾讯云实时音视频 RTC WEB端初识

这里写目录标题前言初识产品产品介绍基础功能高级功能扩展功能快速上手位置创建源码下载源码文档写入密钥使用调试区域前言 当前时代是信息行业飞速发展的时代&#xff0c;万物都在朝物联网方向转化。而人作为一个意识体&#xff0c;也正在通过互联网&#xff0c;认识一个全新…

Design Compiler工具学习笔记(6)

目录 引言 知识储备 实际操作 设计源码 仿真源码 VCS执行仿真 DC 综合 引言 本篇继续学习 DC的基本使用。本篇主要学习 DC 综合之后的效果分析&#xff0c;重点在时序分析。 前文链接&#xff1a; Design Compiler工具学习笔记&#xff08;1&#xff09; Design Comp…

cubeIDE开发, stm32的OLED点亮及字符显示设计(基于SPI通信)

一、SPI 通信技术 显示屏&#xff08;LCD、OLED&#xff09;接口一般有I2C、SPI、UART、RGB、LVDS、MIPI、EDP和DP等。一般3.5寸以下的小尺寸LCD屏&#xff0c;显示数据量比较少&#xff0c;普遍采用低速串口&#xff0c;如I2C、SPI、UART。SPI&#xff08;Serial Peripheral I…