java商品编写代码_商品品牌业务之后台Java代码的编写

今天是刘小爱自学Java的第146天。

感谢你的观看,谢谢你。

a3318c941136e31422f9e0be7c9e8802.gif

商品品牌业务之后台Java代码的编写-1.jpg (50.46 KB, 下载次数: 1)

2021-2-5 00:22 上传

学习计划安排如下:

昨天实现了前端页面的编写以及发送请求,今天关于异步请求工具axios的简单说明。关于商品品牌,后台代码的完整编写。两个重要知识点:分页助手插件的使用,通用mapper高阶查询的使用。一、异步请求工具axios

我们以前使用的是jQuery发送ajax请求,但是在Vue中还要引入jQuery不太方便。

Vue官方推荐的ajax请求框架叫做:axios

a3318c941136e31422f9e0be7c9e8802.gif

商品品牌业务之后台Java代码的编写-2.jpg (32.77 KB, 下载次数: 0)

2021-2-5 00:22 上传

axios支持Http的所有7种请求方式,并且有对应的方法如:Get、POST与其对应。

另外这些方法最终返回的是一个Promise,对异步调用进行封装。

因此可以用.then() 来接收成功时回调,.catch()完成失败时回调,也就是我们昨天的代码编写。

但是昨天写的代码很难看出来是使用的axios,因为其有配置让其使用更简单了。

axios的配置

a3318c941136e31422f9e0be7c9e8802.gif

商品品牌业务之后台Java代码的编写-3.jpg (71.57 KB, 下载次数: 0)

2021-2-5 00:22 上传

①使用axios发送请求

prototyte,原型的意思,有什么作用呢?

就相当于给Vue这个类增加了一个$http方法,对应的就是axios,昨天发送请求时使用的this.$http其实就相当于这里的axios。

本来呢如果要使用axios,需要先引入axios,再使用axios调用get方法即可发送get请求。

做了该配置后,就不用引入axios库了,直接调用vue的$http方法即可。

②基础请求路径

直接引用config.js文件中的url即可,也就是网关对应的域名+路由,最先开始就说明过。

二、后台代码编写

个人的编写代码思路:

首先确定对应实体类,其次确定请求参数、请求路径和返回值,最后Java三层代码编写。

1实体类和数据表

a3318c941136e31422f9e0be7c9e8802.gif

商品品牌业务之后台Java代码的编写-4.jpg (55.44 KB, 下载次数: 0)

2021-2-5 00:22 上传

数据库中对应的数据表为tb_brand,编写实体类Brand和其一一对应。

2返回值数据

编写一个分页数据实体类,在其它业务中若是需要分页数据也可以使用这个类。

所以将其存放到lxa-common微服务中,其它微服务要用这个直接引用即可。

a3318c941136e31422f9e0be7c9e8802.gif

商品品牌业务之后台Java代码的编写-5.jpg (43.93 KB, 下载次数: 0)

2021-2-5 00:22 上传

分页数据包括了:分页总条数,总页数以及当前页数据数。

这个items也就是我们通过数据库查询到的Brand集合。

3Controller层

该层接受请求和响应处理后的数据,其最重要的也就是请求路径和请求参数。

通过浏览器F12可以查看到发送的请求路径以及请求参数。

a3318c941136e31422f9e0be7c9e8802.gif

商品品牌业务之后台Java代码的编写-6.jpg (67.5 KB, 下载次数: 0)

2021-2-5 00:22 上传

①关于请求路径

注解@RequestMapping和@GetMapping确定其请求路径,当然全路径中还包括网关对应的域名以及配置的路由。

②关于请求参数

一共有5个参数,逐一说明:

page:当前页码数,默认设定为第1页。rows:每页展示多少行数据?默认设定为5行。sortBy:根据什么参数排序,上图中就是根据id排序,该参数可以没有。key:这个是前端页面搜索框中输入的数据,根据key模糊查询。desc:排序规则,如果是true,降序排序;如果是false,升序排序。defaultValue设定默认值,required=false表示该参数可以没有,如果不写的话默认为true,必须要有该参数才行。

4Service层和Mapper层

因为是单表查询,所以使用通用mapper插件即可,mapper层代码超简单就不说明了。

a3318c941136e31422f9e0be7c9e8802.gif

商品品牌业务之后台Java代码的编写-7.jpg (74.23 KB, 下载次数: 0)

2021-2-5 00:22 上传

①分页助手的使用

PageHelper是Mybatis的一个分页插件,其使用起来非常的方便。

调用startPage()方法开启分页助手的使用,参数为当前页码数和每页的行数。

在⑤中创建一个PageInfo对象,其和分页相关的数据都可以用对应的get方法获取。

②根据key值模糊查询

我们在搜索框中输入的数据为key:

key值要么是品牌名name包含的值。key值要么就是品牌首字母letter。③排序

关于通用mapper的使用,第132天有说明。

用一个三元表达式来说明是升序还是降序,一定要注意要留有空格,具体看图中说明。

④查询结果

如果查询结果为空,自定义一个异常报错,关于自定义异常后续专门写一篇文章额外说明,emm……具体看情况吧。

三、前端页面接受请求

通过浏览器F12查看响应到的数据。

1响应数据渲染

a3318c941136e31422f9e0be7c9e8802.gif

商品品牌业务之后台Java代码的编写-8.jpg (64.27 KB, 下载次数: 0)

2021-2-5 00:22 上传

因为我们在前端代码中打印了响应的数据,也就是consol.log(resp)这段代码。

在浏览器中可以查看到具体的响应数据。

我们可以发现,数据主要存储在data中:

items即为响应的每行数据,因为设置的rows值为5,所以这里items大小也就是为5。total即总记录数,数据库中一共查到了164条品牌数据。totalPage即总页数,因为我们这里没有编写对应的业务,所以为null。将响应的数据赋值给前端vue中对应的值即可,其中关于loading再次做一个说明:

loading为true,前端页面中有一条不断加载的线来表示数据正在加载中。loading为为false,不再显示那条线。2做一个测试

在管理页面中,选择我的品牌管理,向服务器发送请求获取响应数据,并完成数据渲染:

a3318c941136e31422f9e0be7c9e8802.gif

商品品牌业务之后台Java代码的编写-9.jpg (40.72 KB, 下载次数: 0)

2021-2-5 00:22 上传

页面加载后的结果就是如上图所示,这是我调到了第2页后的数据。

由于vue组件的使用,所以自行实现了分页功能,不用我们自己以前那样一一对应渲染了。

其中关于图片的业务还未处理,数据库中有的也没有图片数据,所以没有显示。

最后

行有不得反求诸己,我是刘小爱。

白天上班晚上学习,和Java同岁,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。

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

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

相关文章

java中8种数据类型和默认值所占字节数

java 8种基本数据类型的默认值及所占字节数通过一段代码来测试一下 8种基本数据类型的默认值 1 package dierge;2 3 public class Ceshi { 4 int a; 5 double b; 6 boolean c; 7 char d; 8 float f; 9 byte e; 10 long h; 11 short j; 12 public static void main(String…

软件测试实验1:为三角形问题编写一个Java程序,并用Junit测试程序

实验报告 实验内容: 1.Install Junit(4.12), Hamcrest(1.3) with Eclipse 2.Install Eclemma with Eclipse 3.Write a java program for the triangle problem and test the program with Junit. 实验步骤: 1.在eclipse中安装Junit、Hamcrest和eclemma。…

SurfaceFlinger与Surface概述

基本原理: SF一个Client对应一个app中的SurfaceComposerClient, 分别是Binder的n端和b端,主要用来CreateSurface 一个app中有多个Activity,一个Activity一般有一个Surface(除SurfaceView,一个View就有一个Surface)&…

拼图项目动手指南

Jigsaw项目将把模块化引入Java平台,根据原始计划,它将在12月10日完成功能。 所以我们在这里,但是拼图在哪里? 在过去的六个月中肯定发生了很多事情: 原型问世 ,内部API的迫在眉睫的删除引起了很大的骚动 &…

java实现回文验证_LeetCode 精选 TOP 面试题(Java 实现)—— 验证回文串

文章目录一、题目描述1.1 题目验证回文串给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a cana…

java开发门禁指纹,指纹门禁

大兀人脸识别控制系统USB指纹仪DW9拓扑图(指纹为java系统直接采集、云或控制板直接比对,无需二次注册,人脸为htttp上传服务器或rtsp视频流比对方案)大兀活体指纹门禁采用BS架构,已集成进大兀人脸识别系统,如二次开发可直接调用jav…

使用Selenide进行有效的UI测试

等待奇迹 圣诞节是奇迹的时刻。 在新的一年的前夕,我们都为下一年制定了计划。 我们希望所有问题都将在最后一年消失,在来年出现奇迹。 每个Java开发人员都梦想着创造一个奇迹,使他成为世界上最有效的Java开发人员。 我想向你展示这样的奇…

android之seekbar

做了一个拖动滑块改变数值的demo 下附上代码: <SeekBar android:id"id/myseekbar" android:layout_width"match_parent" android:layout_marginTop"20dp" android:thumb"drawable/slider" android:layout_height&qu…

php 微信小程序 循环 多选,微信小程序实现多选功能

本文为大家分享了微信小程序实现多选功能的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下代码&#xff1a;{{num 1}}/{{quesyion.length}}{{question[num][0]}}A {{question[num][1]}}B {{question[num][2]}}C {{question[num][3]}}D {{question[num][4]}}正确答案…

php+反序列化代码执行漏洞,PHP反序列化漏洞

0x001 漏洞产生原理在反序列化的过程中自动触发了某些魔术方法。未对用户输入的序列化字符串进行检测&#xff0c;导致攻击者可以控制反序列化过程&#xff0c;从而导致XSS、代码执行、文件写入、文件读取等不可控后果。0x002 漏洞触发条件一般只能通过代码审计的方式挖掘该漏洞…

java filter 模式,Java设计模式----过滤器模式(挑三拣四)

过滤器模式描述拦截过滤器模式(Intercepting Filter Pattern)用于对应用程序的请求或响应做一些预处理/后处理。定义过滤器&#xff0c;并在把请求传给实际目标应用程序之前应用在请求上。过滤器可以做认证/授权/记录日志&#xff0c;或者跟踪请求&#xff0c;然后把请求传给相…

java项目processes设置,Jvm调优和SpringBoot项目优化的详细教程

参考文章1、先看一下未设置JVM参数的情况&#xff0c;默认情况下&#xff0c;没有设置任何Jvm参数。2、设置Jvm参数。配置参数&#xff1a;关于这些设置的JVM参数是什么意思&#xff0c;参考Jvm调优。-XX:MetaspaceSize128m (元空间默认大小)-XX:MaxMetaspaceSize128m (元空间最…

Git问题Everything up-to-date解决

Git问题Everything up-to-date解决 【自己的亲身错误体验】 我的上一篇博客&#xff0c;说了怎么上传一个项目到git远程上面。今天我写好一个小栗子&#xff0c;准备再次上传的时候。我依旧是放在我的F:\github\js- 这个和我的github上的远程仓库相同名称的文件中的 在这里空白…

java超出gc开销限制_超出了GC开销限制– Java堆分析

java超出gc开销限制这篇文章是我们原来的GC开销超出问题模式的延续。 正确的Java堆分析对于消除O​​utOfMemoryError&#xff1a;GC开销问题至关重要。 如果您不熟悉此Java HotSpot 1.6错误&#xff0c;建议您首先阅读有关此主题的第一篇文章 。 本文将为您提供一个示例程序和…

java自定义一个timeout,Timeout操作符 RxJava 学习笔记二十一

timeout用于检测在给定时间内observables没有及时响应。如果指定的时间量没有发出任何项目&#xff0c;则超时会使observables失败并出现TimeoutException。我们将从debounce的示例中重用我们的observable来演示超时。输出&#xff1a;只要值不超过200ms&#xff0c;就会输出。…

用xshell ssh连接测试服务器时候出的问题

问题还原&#xff1a;用ssh连接测试服务器 给我结结实实报了个错 FBIwarning: ----------------------------------------------------------------------------------------------------------------------------以上 问题还原 解决过程&#xff1a;百度 博客地址http://blog.…

maven集成spring_Maven集成测试和Spring Restful Services

maven集成spring介绍 我的原始博客通过一个非常简单的示例展示了如何分离Maven单元和集成测试。 http://johndobie.blogspot.com/2011/06/seperating-maven-unit-integration-tests.html此后&#xff0c;许多人要求我提供比最初使用的示例更实际的示例。 这篇文章显示了如何在实…

WebService.asmx架设后,显示调用按钮的方法

我们在VS本地调试WebService的时候&#xff0c;页面是可以调试的&#xff0c;如下图 但是在发布以后&#xff0c;通过浏览器访问服务器上的地址&#xff0c;是不能调试你的程序的&#xff0c;就变成了这个样子&#xff1a; 可以通过修改服务器上的web.config达到远程调试的效果…

复习者-Java EE 7概览

随着红帽JBoss企业应用平台7&#xff08;EAP 7&#xff09;的出现&#xff0c;甚至最近刚刚通过Java EE 7认证的WebLogic服务器&#xff0c;我认为现在应该为您重新介绍Java Enterprise Edition 7的时候了功能&#xff0c;并指向更多资源。 Java EE 7 –开发人员的生产力&…

按窗口文件php代码,在Windows命令行窗口中输入并运行PHP代码片段(不需要php文件)的方法...

有时候只是简单的为了测试某个php函数的效果&#xff0c;以前总是需要建一个php文件&#xff0c;复制这个文件的路径&#xff0c;再通过web访问或者用php命令执行这个php文件。一直想要怎么才能不用创建文件&#xff0c;才能直接执行PHP代码片段呢&#xff1f;终于找到了方法&a…