4.快速实现增删改查,模糊查询功能

打开springboot项目,在com.example下建包common,在common下新建Result.java

4.1封装统一的返回数据结构

1.在Result.java中编写如下代码:

private static final String *SUCCESS*="0";
private static final String *ERROR*="-1";
private String code;//返回状态码请求成功/失败
private String msg;//报错信息
private Object data;//数据

public static Result success(){
    Result result=new Result();
    result.setCode(*SUCCESS*);
    return result;
}
public static Result success(Object data){
    Result result=new Result();
    result.setCode(*SUCCESS*);
    result.setData(data);
    return result;
}
public static Result error(String msg){
    Result result=new Result();
    result.setCode(*ERROR*);
    result.setMsg(msg);
    return result;
}
//下面生成getter和setter方法

2.在AdminController.java下可修改:

将String 改为Result

运行结果:

{"code":"0","msg":null,"data":[{"id":1001,"name":"lili","sex":"女","age":17,"phone":"13888899999"},{"id":1002,"name":"玛丽","sex":"男","age":20,"phone":"13677777788"}]}

在json.cn上解析后:

4.2 Vue安装axios,封装request

1.在vue项目的根目录下执行命令:npm i axios -s

执行成功:

2.封装request

在src目录下,创建一个utils包,用来存放我们自己定义的工具,在utils包里创建一个request.js,来封装request请求

import **axios** from 'axios';

 const **request** =axios.create({
     baseURL: 'http://localhost:8080',
     timeout: 5000
 })
//request拦截器
// 可以自请求发送前对请求做一些处理
// 比如统一加token,对请求参数统一加密
**request**.interceptors.*request*.use(config=>{
    config.headers['Content-Type']= 'application/json;charset=utf-8';
    //config.headers['token']=user.token;//设置请求头
    return config
},error => {
    return **Promise**.reject(error)
});
 // response拦截器
// 可以在接口响应后统一处理结果
**request**.interceptors.*response*.use(
    response=>{
        // response.data即为后端返回的Result
        let res = response.data;
        // 兼容服务端返回的字符串数据
        if(typeof res ==='string'){
            res=res?**JSON**.parse(res):res
        }
        return res;
    },
    error => {
        **console**.log('err'+error)//for debug
        return **Promise**.reject(error)
    }
)
export default **request**;
5.3 查询所有管理员信息

在AdminView.vue中的<script></script>标签中添加如下代码:

import **request** from "@/utils/request";//导入的包,

export default {
  data() {
    return {
      input:'',
      tableData: [删除之前写入的数据],
    }
  },
  //页面加载的时候做一些事情,在created里面
  created(){
     this.load();
  },
  // 定义一些页面上控件触发的事件调用的方法
  methods: {
     load(){
       // alt+shift+enter快捷键引入包
       **request**.get("/admin").then(res=>{
           if(res.code ==='0'){
               // 成功
               this.tableData=res.data;
           }else{
           }
       })
     },

在springboot中(后台项目):

AdminController.java:

AdminService.java

先运行springboot项目,再运行vue项目。

5.4 按条件查询管理员信息

1.AdminView.vue,如下图所示:

在搜索按钮处加上点击事件

<el-button type="warning" style="margin-left: 10px" @click="findBySearch()">搜索</el-button>

2.操作后台Springboot

①AdminController.java

@GetMapping("/search")
public Result findBySearch(Params params){
    List<Admin> list=adminService.findBySearch(params);
    return Result.*success*(list);
}

根据错误提示跳转到AdminService.java中生成相应代码,在此之前,先完成②:

②在entity文件夹下新建Params类,私有化属性,并实现getter/setter方法

//私有化属性

private String name; private String sex; private Integer age; private String phone;

//get,set方法

...自动生成

③AdminService.java

public List<Admin> findBySearch(Params params) {

​    return adminDao.findBySearch(params);
}

根据错误提示跳转到AdminDao.java中生成相应代码

③AdminDao.java代码如下:

List<Admin> findBySearch(@Param("params") Params params);

④ 在AdminMapper.xml下编写如下代码:

<select id="findBySearch" resultType="com.example.entity.Admin">
        select * from admin
        <where>
            <if test="params != null and params.name!=null and params.name!=''">
                and name like concat('%',#{params.name},'%')
            </if>
            <if test="params != null and params.sex!=null and params.sex!=''">
                and sex like concat('%',#{params.sex},'%')
            </if>
            <if test="params != null and params.age!=null and params.age!=''">
                and age like concat('%',#{params.age},'%')
            </if>
            <if test="params != null and params.phone!=null and params.phone!=''">
                and phone like concat('%',#{params.phone},'%')
            </if>
        </where>
    </select>

运行后报错:

解决方法:

MyBits里的配置路径不对,在*与.xml中间多写了一个空格。

3.清空搜索内容

添加清空按钮

<el-button type="warning" style="margin-left: 10px" @click="reset">清空搜索内容</el-button>

methods方法里:

reset(){ this.params={ name: '', phone:'' } this.findBySearch(); },

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

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

相关文章

ROS学习笔记(10)进一步深入了解ROS第四步

0.前提 1. (Python & C)Where does the bag file get saved? How can you change where it is saved?&#xff08;功能包文件被保存在哪&#xff1f;如何更改保存的位置&#xff1f;&#xff09; 1.Where does the bag file get saved&#xff1f;&#xff08;功能包文件…

tolist()读取Excel列数据,(Excel列数据去重后,重新保存到新的Excel里)

从Excel列数据去重后&#xff0c;重新保存到新的Excel里 import pandas as pd# 读取Excel文件 file r"D:\\pythonXangmu\\quchong\\quchong.xlsx" # 使用原始字符串以避免转义字符 df pd.read_excel(file, sheet_namenameSheet)# 删除重复值 df2 df.drop_duplica…

FinGPT——金融领域开源大模型

文章目录 背景论文摘要相关工作大型语言模型&#xff08;LLMs&#xff09;和ChatGPT金融领域的LLMs为什么需要开源的金融LLMs&#xff1f; 以数据为中心的方法用于FinLLMs金融数据和独特特性应对处理金融数据的挑战 FINGPT 概述&#xff1a;FINLLM 的开源框架数据来源面向金融N…

window将Mongodb加入环境变量

首先 你需要安装 Mongodb 如果没有下载安装 可以先查看我的文章 window下载安装Mongodb数据库 右击 此电脑/此计算机/我的电脑 选择属性 在新弹出的窗口中搜索 环境变量 新弹出的窗口中 选择环境变量 系统变量中找到 path 选择编辑 点击新建 然后将安装 Mongodb 的目录下的…

网络连通性批量检测工具

一、背景介绍 企业网络安全防护中&#xff0c;都会要求配置物理网络防火墙以及主机防火墙&#xff0c;加强对网络安全的防护。云改数转之际&#xff0c;多系统上云过程中都会申请开通大量各类网络配置&#xff0c;针对这些复杂且庞大的网络策略开通配置&#xff0c;那么在网络配…

Java 开发体验 HelloWorld

开发步骤 Java 程序开发分为三个步骤&#xff1a;编写、编译、运行 将 Java 代码编写到扩展名为 .java 的源文件中通过 javac.exe 命令对该 .java 文件进行编译&#xff0c;生成一个或多个字节码文件 .class通过 java.exe 命令对生成的 .class 文件进行运行 编写 创建 Hel…

自定义Echarts中legend、tooltip等样式

文章目录 自定义Echarts中legend、tooltip等样式legend.formatterlegend. textStylelegend.textStyle. rich实例效果图参考文档 自定义Echarts中legend、tooltip等样式 在使用Echarts图表中不可避免的要定义legend、tooltip中的样式&#xff0c;这里以legend为例介绍一下通用的…

gitlab 8.13.0 关闭注册功能

新版本基本都可以在网上找到关闭注册的教程&#xff0c;但是老版本会比较麻烦&#xff0c;可以通过如下路径在网页中设置&#xff08;root 管理员登录&#xff09; ​​​​​​http://ip:port/admin/application_settings 最后保存即可

迟来的扫雷游戏

今天我们讲如何用C语言编写出一个简单扫雷&#xff0c;扫雷也算是一个比较原始的游戏了吧&#xff0c;那么我们今天就来实现他&#xff01; 首先我们要来缕一缕游戏框架 我们在代码中我们肯定会写许多函数来实现扫雷&#xff0c;那么我们为了简便看出游戏的运行逻辑&#xff0…

大数据 - Doris系列《二》- Doris安装(亲测成功版)

目录 &#x1f436;2.1 安装前准备 &#x1f959;1.设置系统最大文件打开句柄数 >启动一个程序的时候&#xff0c;打开文件的数量就是句柄数 &#x1f959;3.时钟同步 &#x1f959;4.关闭交换分区&#xff08;swap&#xff09; &#x1f436;2.2 安装FE &#x1f436…

8000字程序性能优化全能手册

8000字讲清楚程序性能优化。 本文聊一个程序员都会关注的问题&#xff1a;性能。 当大家谈到“性能”时&#xff0c;你首先想到的会是什么&#xff1f; 是每次请求需要多长时间才能返回&#xff1f;是每秒钟能够处理多少次请求&#xff1f;还是程序的CPU和内存使用率高不高&…

springBoot2.3-简单了解依赖管理、自动配置

一、自动依赖管理 基本介绍&#xff1a;springBoot提前帮我们写好了极多的依赖及版本号&#xff0c;当然我们也可以自定义依赖项与版本号。 1.1 简单介绍 1、在入门案例中&#xff0c;springBoot的maven中引入了parent父工程 2、ctrl 左键 parent&#xff0c; 发现里边还有…

C++算法学习五.二叉树(1)

1.二叉树理论基础 二叉树的种类&#xff1a; 满二叉树&#xff1a;一棵二叉树只有度为0的结点和度为2的结点&#xff0c;并且度为0的结点在同一层上&#xff0c;则这棵二叉树为满二叉树。深度为k&#xff0c;总共有2的k次幂-1个节点。 完全二叉树&#xff1a;在完全二叉树中…

用贪心算法编程求解任务安排问题

题目&#xff1a;用贪心算法编程求解以下任务安排问题 一个单位时间任务是恰好需要一个单位时间完成的任务。给定一个单位时间任务的有限集S。关于S的一个时间表用于描述S中单位时间任务的执行次序。时间表中第1个任务从时间0 开始执行直至时间1 结束&#xff0c;第2 个任务从时…

MyBatisPlus学习一:快速入门

前言 前面快速学习了Mybatis&#xff0c;现在开始快速学习MyBatisPlus 学习教程&#xff1a; 黑马mybatis教程全套视频教程&#xff0c;2天Mybatis框架从入门到精通 黑马程序员最新MybatisPlus全套视频教程&#xff0c;4小时快速精通mybatis-plus框架 简介 MyBatisPlus 是…

解析《个人信息保护法》实施以来主要的变化

文章目录 前言一、二十一部配套的立法二、数据入表三、跨境规则转向四、未成年个人信息保护五、数据交易六、监管创新七、执法全覆盖八、地方聚焦场景执法九、个人信息保护诉讼十、个人信息保护公益诉讼十一、包容审慎十二、双清单上线十三、外部独立监督机构十四、个性化推荐便…

高清网络视频监控平台的应用-城市大交通系统视联网

目 录 一、应用需求 二、系统架构设计 三、功能介绍 1.实时视频监控 2.云台控制 3.语音功能 4. 录像管理与回放 5.告警联动 6.多种显示终端呈现 &#xff08;1&#xff09;CS客户端 &#xff08;2&#xff09;web客户端 &#xff08;3&#xf…

Proxy 与 defineProperty 的理解、区别、优势、劣势

一、Object.defineProperty() 文档&#xff1a;Object.defineProperty() - JavaScript | MDN 作用&#xff1a;对一个对象进行操作的方法。可以为一个对象增加一个属性&#xff0c;同时也可以对一个属性进行修改和删除。 它是在 ES5 中引入的&#xff0c;使用了 getter 和 s…

node加速镜像源 管理工具nrm安装使用

我们在开发node.js的时候,经常会遇到某些包无法下载, 或者下载太慢, 还有需要加载我们自己是有源中的包的问题, 今天推荐给大家的这款 nrm 镜像源管理工具就是解决这类问题的. 安装 方法也很简单, 执行 npm install nrm -g 就可以安装 # 安装nrm npm install nrm -g# 添加…

B端产品经理学习-对用户进行需求挖掘

目录&#xff1a; 用户需求挖掘的方法 举例&#xff1a;汽车销售系统的用户访谈-前期准备 用户调研提纲 预约用户做访谈 用户访谈注意点 我们对于干系人做完调研之后需要对用户进行调研&#xff1b;在C端产品常见的用户调研方式外&#xff0c;对B端产品仍然适用的 用户需…