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

Springmvc实现增删改差

一、包结构

二、各层代码

(1)数据User

public class User {private Integer id;private String userName;private String note;public User() {super();}public User(Integer i, String userName, String note) {super();this.id = i;this.userName = userName;this.note = note;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getNote() {return note;}public void setNote(String note) {this.note = note;}}

(2)dao层

IUserDao接口

public interface IUserDao {public User getUser(Integer id);public Boolean insertUser(User user);public List<User> findAllUser();Boolean deleteUser(Integer id);Boolean modifyUserName(Integer id, String newUserName);
}

实现类:

@Repository
public class UserDaoImpl implements IUserDao {private List<User> users = new ArrayList<User>();public UserDaoImpl() {super();users.add(new User(1, "user_name_1", "note_1"));users.add(new User(2, "user_name_2", "note_2"));users.add(new User(3, "user_name_3", "note_3"));}@Override/*   根据id来返回对象*/public User getUser(Integer id) {// TODO Auto-generated method stubfor (User user : users) {if (user.getId().equals(id)) {return user;}}return null;}@Overridepublic Boolean insertUser(User user) {// TODO Auto-generated method stubBoolean flag=false;System.out.println(user.getUserName()+">>"+user.getNote());users.add(user);        //User为上上面申明的集合 add方法为List集合的方法flag=true;return flag;}@Override public List<User> findAllUser() {   return users; }
}

(3)service层:

 

IUserService接口:

public interface IUserService {public User getUser(Integer id);public List<User> findAllUser();public Boolean insertUser(User user);public List<User> queryUser(String userName,String note);Boolean deleteUser(Integer id);Boolean modifyUserName(Integer id, String newUserName);
}

实现类:


@Service
public class UserServiceImpl implements IUserService {@Autowiredprivate IUserDao userDao;/*  省去了申明传值的步骤*/@Override/*根据User来获取对象*/public User getUser(Integer id) {// TODO Auto-generated method stubreturn userDao.getUser(id);}@Overridepublic Boolean insertUser(User user) {// TODO Auto-generated method stubBoolean flag=false;System.out.println(user.getUserName()+">>"+user.getNote());flag=userDao.insertUser(user);return flag;}@Overridepublic List<User> findAllUser() {List<User> users = userDao.findAllUser();if (users.size() > 1) {for (int i = 1; i < users.size(); i++) {User currentUser = users.get(i);User previousUser = users.get(i-1);if (currentUser.getId() == null) {currentUser.setId(previousUser.getId()+1);}}}return users;}@Overridepublic List<User> queryUser(String userName1, String note1) {List<User> users = userDao.findAllUser();List<User> result = new ArrayList<>();for (User user : users) {if (user.getUserName().equals(userName1) && user.getNote().equals(note1)) {result.add(user);}}return result;}public Boolean deleteUser(Integer id) {return userDao.deleteUser(id);}@Overridepublic Boolean modifyUserName(Integer id, String newUserName) {return userDao.modifyUserName(id, newUserName);}
}

(4)controller层

@Controller
@RequestMapping("/user")
public class UserController {@Autowiredprivate IUserService userService=null;@GetMapping("/add")public String add() {return "add";}/** 新增用户*@param user 通过@RequestBody注解得到JSON参数*return 返回用户信息*/@PostMapping("/insert")@ResponseBodypublic User insert(@RequestBody User user) {userService.insertUser(user);return user;}//显示数据 http://localhost:8080/user/list@RequestMapping("/list")@ResponseBodypublic List<User> list(){//访问模型层得到数据List<User> users=userService.findAllUser();return users;}//显示数据 http://localhost:8080/user/table@RequestMapping("/table")public ModelAndView table0() {//访问模型层得到数据List<User> users=userService.findAllUser();System.out.println("111");//模型和视图ModelAndView mv=new ModelAndView();//定义模型视图 1mv.setViewName("table");//加入数据模型mv.addObject("users",users);//返回模型和视图return mv;}@RequestMapping(value = "/query1")@ResponseBodypublic ModelAndView query1(@RequestParam(value = "userName") String userName,@RequestParam("note") String note){List<User> users=userService.queryUser(userName,note);ModelAndView mv=new ModelAndView();mv.setViewName("table");mv.addObject("users",users);return mv;}@RequestMapping("/delete/{id}")public String deleteUser(@PathVariable Integer id, Model model) {boolean success = userService.deleteUser(id);model.addAttribute("success", success);model.addAttribute("deletedUserId", id);return "delete";}@GetMapping("/modify")public String showModifyPage() {return "modify";}@PostMapping("/modify")@ResponseBodypublic ResponseEntity<Map<String, String>> modifyUser(@RequestParam int userId,@RequestParam String newUserName) {// 进行修改用户的逻辑,假设这里调用了修改用户的 service 方法boolean success = userService.modifyUserName(userId, newUserName);// 返回修改后的结果Map<String, String> result = new HashMap<>();result.put("modifiedUserId", String.valueOf(userId));result.put("newUserName", newUserName);// 返回 ResponseEntityreturn ResponseEntity.ok(result);}
}

相关文章:

Springmvc实现增删改差

一、包结构 二、各层代码 (1)数据User public class User {private Integer id;private String userName;private String note;public User() {super();}public User(Integer i, String userName, String note) {super();this.id i;this.userName userName;this.note note;…...

CentOS 7 使用cJSON 库

什么是JSON JSON是一种轻量级的数据交换格式&#xff0c;可读性强、编写简单。键值对组合编写规则&#xff0c;键名使用双引号包裹&#xff0c;冒号&#xff1a;分隔符后面紧跟着数值&#xff0c;有两种常用的数据类型是对象和数组。 对象&#xff1a;使用花括号{}包裹起来的…...

Linux——使用kill结束进程并恢复进程

目录 查看进程结束进程修复进程 查看进程 在linux中&#xff0c;关闭某进程之前先查看已经在运行的进程有哪些&#xff0c;使用下面命令查看&#xff1a; ps aux | grep -i apt 命令查看哪个进程正在使用 apt结束进程 结束某线程的命令为&#xff1a; sudo kill -9 PID 命令…...

【Linux虚拟内存的配置】

设置Linux虚拟内存 注意:在做项目时&#xff0c;电脑内存不够用,怎么办? 这里给大家提供了一种解决方案,用磁盘换内存,具体如下: 虚拟内存swap介绍 如果你的服务器的总是报告内存不足&#xff0c;并且时常因为内存不足而引发服务被强制kill的话&#xff0c;在不增加物理内…...

基于C#实现外排序

一、N 路归并排序 1.1、概序 我们知道算法中有一种叫做分治思想&#xff0c;一个大问题我们可以采取分而治之&#xff0c;各个突破&#xff0c;当子问题解决了&#xff0c;大问题也就 KO 了&#xff0c;还有一点我们知道内排序的归并排序是采用二路归并的&#xff0c;因为分治…...

HTML CSS登录网页设计

一、效果图: 二、HTML代码: <!DOCTYPE html> <!-- 定义HTML5文档 --> <html lang="en"> …...

dos 命令 判断路径中包含某字符并移动文件

SET GenFolder C:\Users\administered\Desktop\t2\old_file set path1C:\Users\administered\Desktop\t1\crontab_master set path2C:\Users\administered\Desktop\t2\old_file if not exist %GenFolder% ( echo %GenFolder%目录不存在&#xff0c;已创建该目录&#x…...

electron+vue3全家桶+vite项目搭建【26】electron本地安装Vue Devtool插件,安装浏览器扩展

文章目录 引入获取vue devtool导入插件排除插件的npm脚本最终效果 引入 demo项目地址 Vue Devtools插件是vue项目必备插件&#xff0c;它是安装在浏览器里的&#xff0c;而咱们的electron中实际就包含了一个浏览器&#xff0c;同理它也可以加载浏览器插件 获取vue devtool 直…...

Modbus TCP

Modbus &#xff08;&#x1f446; 百度百科&#xff0c;放心跳转&#xff09; 起源 Modbus 由 Modicon 公司于 1979 年开发&#xff0c;是一种工业现场总线协议标准。 Modbus 通信协议具有多个变种&#xff0c;支持串口&#xff0c;以太网多个版本&#xff0c;其中最著名的…...

基于人工兔算法优化概率神经网络PNN的分类预测 - 附代码

基于人工兔算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于人工兔算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于人工兔优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神经网络…...

微服务学习(十二):安装Minio

微服务学习&#xff08;十二&#xff09;&#xff1a;安装Minio 一、简介 MinIO 是一款基于Go语言发开的高性能、分布式的对象存储系统。客户端支持Java,Net,Python,Javacript, Golang语言。MinIO系统&#xff0c;非常适合于存储大容量非结构化的数据&#xff0c;例如图片、视…...

SpringCloud实用-OpenFeign整合okHttp

文章目录 前言正文一、OkHttpFeignConfiguration 的启用1.1 分析配置类1.2 得出结论&#xff0c;需要增加配置1.3 调试 二、OkHttpFeignLoadBalancerConfiguration 的启用2.1 分析配置类2.2 得出结论2.3 测试 附录附1&#xff1a;本系列文章链接附2&#xff1a;OkHttpClient 增…...

Python 异步套接字编程

异步套接字编程是异步编程在网络通信中的应用&#xff0c;它使用异步 IO 操作和事件循环来实现高并发的网络应用。Python 中的 asyncio 模块提供了对异步套接字编程的支持&#xff0c;以下是异步套接字编程的一些重要概念和使用方法&#xff1a; 1. 异步套接字服务器&#xff…...

今年的校招薪资真的让人咋舌!

秋招接近尾声&#xff0c;各大公司基本也陆续开奖了。这里整理了部分公司的薪资情况&#xff0c;数据来源于 OfferShow 和牛客网。 ps&#xff1a;爆料薪资的几乎都是 211 和 985 的&#xff0c;并不是刻意只选取学校好的。另外&#xff0c;无法保证数据的严格准确性。 淘天 …...

debian 设置系统默认以命令行方式启动,关闭x windows

debian 设置系统默认以命令行方式启动&#xff0c;关闭x windows 2021-01-02 tech linux 设置 grub启动设置在/etc/default/grub中&#xff0c;打开 default grub 配置: $ sudo vim /etc/default/grub修改以下配置&#xff1a; 更新grub&#xff0c;设置多用户启动: …...

AMEYA360:蔡司新能源汽车解决方案驱动产业未来

电动化正在重塑中国汽车工业。自中国汽车工业开始发展以来&#xff0c;在电动化和智能化的浪潮推动下&#xff0c;汽车行业从未面临着如此巨大的变革。得益于中国汽车产业尤其是新能源车过去十余年的激流勇进&#xff0c;消费者对新能源汽车的接受度也在发生转变。新能源汽车市…...

C#面试问题整理

sqlserver中视图和表的区别 在 SQL Server 中&#xff0c;视图&#xff08;View&#xff09;和表&#xff08;Table&#xff09;是不同的对象&#xff0c;它们有以下几点区别&#xff1a; 数据存储方式&#xff1a;表是一种实际存储数据的数据库对象&#xff0c;它包含列和行&…...

微信小程序 基于Android的共享付费自习室座位选座系统uniAPP

题目&#xff1a; 基于Android的共享自习室APP设计与实现 (学校要求&#xff1a;数据库不少于有逻辑关系的20个表&#xff0c;系统功能不少于60个功能点&#xff09; 技术&#xff1a; 功能&#xff1a; 1. 用户端&#xff1a; 一、首页&#xff1a; &#xff08;1&…...

Java中类的类型判断技巧以及没有无参构造函数时的应对策略。isInstance()方法解析

类的类型判断 基本数据类型的包装类中&#xff0c;例如Integer、Long这些类是没有无参构造方法的&#xff0c;因此在以下情况中&#xff0c;会出错 具体类型是未知的&#xff0c;只有全路径类名 String typeSte "java.lang.Integer"; Class<?> typeClass …...

基于微信小程序的员工宿舍报修系统

项目介绍 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 &#xff08;一&#xff09;引用计数法 &#xff08;二&#xff09;可达性分析算法 二、垃圾回收算法 &#xff08;一&#xff09;标记清除 &#xff08;二&#xff09;标记整理 &#xff08;三&#xff09;复制 &#xff08;四&#xff…...

基于Java+VUE+MariaDB实现(Web)仿小米商城

仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意&#xff1a;运行前…...