Spring-mvc-Restful风格实现增删改查

本文介绍了Restful风格的软件设计原则,详细解释了URL定义和Restful的特性,包括资源、表现层和状态转换的概念。通过示例展示了如何在Spring MVC中实现Restful风格的增删改查操作,包括接口定义、实体类创建、JSP文件和控制器的配置。文章未涉及数据库连接,仅使用假数据进行演示。
摘要由CSDN通过智能技术生成

Restful风格:

一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

URL定义

资源:互联网所有的事物都可以被抽象为资源
资源操作:使用POST、DELETE、PUT、GET,使用不同方法对资源进行操作。
分别对应 添加、 删除、修改、查询。

Restful的特性

资源(Resources):网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的存在。可以用一个URI(统一资源定位符)指向它,每种资源对应一个特性的URI。要获取这个资源,访问它的URI就可以,因此URI即为每一个资源的独一无二的识别符。

表现层(Representation):把资源具体呈现出来的形式,叫做它的表现层(Representation)。比如,文本可以用txt格式表现,也可以用HTML格式、XML格式、JSON格式表现,甚至可以采用二进制格式。

状态转换(State Transfer):每发出一个请求,就代表了客户端和服务器的一次交互过程。HTTP协议,是一个无状态协议,即所有的状态都保存在服务器端。因此,如果客户端想要操作服务器,必须通过某种手段,让服务器端发生“状态转换”(State Transfer)。而这种转换是建立在表现层之上的,所以就是“表现层状态转换”。具体说,就是HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。他们分别对应四种基本操作:GET用来获取资源,POST用来新建资源,PUT用来更新资源,DELETE用来删除资源。

接下来简单实现一下:
首先:建立一个实体类:

package gvn.openlab.bean;
public class Employee {
   
    private int  id;//id模拟数据库自增
    private String name;
    private String sex;
    private static  int i=0;
    public Employee() {
   
        this.id = i;
        i++;
    }
    public Employee( String name, String sex) {
   
       this();
        this.name = name;
        this.sex = sex;
    }

    public int getId() {
   
        return id;
    }

    public void setId(int id) {
   
        this.id = id;
    }

    public String getName() {
   
        return name;
    }

    public void setName(String name) {
   
        this.name = name;
    }

    public String getSex() {
   
        return sex;
    }

    public void setSex(String sex) {
   
        this.sex = sex;
    }
}

在建立一个接口定义相应的方法:

package gvn.openlab.dao;

import gvn.openlab.bean.Employee;

import java.util.List;

public interface EmpDao {
   
    public List<Employee> findall();//查找所有数据
    public  void sava (Employee employee);//添加数据方法
    public void delete(Integer id);//按id删除数据
    public  Employee findByid(Integer id);//按id查找数据
}

实现接口方法:

package gvn.openlab.dao.impl;

import gvn.openlab.bean.Employee;
import gvn.openlab.dao.EmpDao;
import org.springframework.stereotype.Controller;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Controller
public class EmpDaoImpl implements EmpDao {
   
    private  static Map<Integer,Employee> map=new HashMap<Integer,Employee>();//定义一个map装假数据
    static {
   //静态代码块 加载数据入map
        Employee e=new Employee("若尘","男");
        Employee e1=new Employee("若曦","男");
        Employee e2=new Employee("梓渝","男");
        map.put(e.getId(),e);
        map.put(e1.getId(),e1);
        map.put(e2.getId(),e2);
        System.out.println("sta方法执行");
    }
    @Override
    public List<Employee> findall() {
   //查寻数据
       // System.out.println(new ArrayList<>(map.values()));
        return new ArrayList<>(map.values());//将map封装成List
    }

    @Override
    public void sava(Employee employee) {
   //添加方法
        map.put( employee.getId(),employee);
    }

    @Override
    public void delete(Integer id) {
   //删除方法
        map.remove(id);
    }

    @Override
    public Employee findByid(Integer id) {
   //通过id进行查找数据
        return map.get(id);
    }
}

没有连接数据库,只是进行假数据的;

jsp文件:
首先进入界面:

<%--
  Created by 
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Spring MVC 是基于 MVC 设计模式的 web 框架,可以很方便地实现 RESTful 风格的 API。下面是 Spring MVC 实现 RESTful API 的增删改查操作的示例代码: 1. 添加(Create)操作 ```java @RequestMapping(value = "/user", method = RequestMethod.POST) @ResponseBody public User add(@RequestBody User user) { // 保存用户信息到数据库 userRepository.save(user); return user; } ``` 2. 查询(Retrieve)操作 ```java @RequestMapping(value = "/user/{id}", method = RequestMethod.GET) @ResponseBody public User get(@PathVariable("id") Long id) { // 从数据库中获取指定 id 的用户信息 User user = userRepository.getOne(id); return user; } ``` 3. 更新(Update)操作 ```java @RequestMapping(value = "/user/{id}", method = RequestMethod.PUT) @ResponseBody public User update(@PathVariable("id") Long id, @RequestBody User user) { // 获取指定 id 的用户信息 User originalUser = userRepository.getOne(id); // 更新用户信息 originalUser.setUsername(user.getUsername()); originalUser.setPassword(user.getPassword()); // 保存用户信息到数据库 userRepository.save(originalUser); return originalUser; } ``` 4. 删除(Delete)操作 ```java @RequestMapping(value = "/user/{id}", method = RequestMethod.DELETE) @ResponseBody public void delete(@PathVariable("id") Long id) { // 从数据库中删除指定 id 的用户信息 userRepository.deleteById(id); } ``` 其中,`User` 是一个实体类,`userRepository` 是一个 JPA 接口,用于操作数据库。以上代码中,`@RequestMapping` 注解用于指定 API 的 URL,`@RequestBody` 注解用于将请求体中的 JSON 数据转换成 Java 对象,`@ResponseBody` 注解用于将 Java 对象转换成 JSON 数据返回给客户端。`@PathVariable` 注解用于获取 URL 中的参数值。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值