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

pc端和移动端的网站电商运营培训正规平台

pc端和移动端的网站,电商运营培训正规平台,做局域网站数据库,动态网页设计总结实战第六课:文章分类开发 新增文章分类: 具体实现: 1.Controller层需要对传过来的json数据先进行RequestBody处理,将其转化为Java对象,然后在Validated处理,校验参数是否合法(即分类名和分类…

实战第六课:文章分类开发

新增文章分类:

 

具体实现: 

1.Controller层需要对传过来的json数据先进行@RequestBody处理,将其转化为Java对象,然后在@Validated处理,校验参数是否合法(即分类名和分类别名不能为空)

2.service层,注意要为category对象通过ThreadLocal添加createUser属性,不然为空会报错;

 3.Mapper层Insert数据:

查询文章分类:

具体实现:

1.Controller层。

2.实体类,注意@NotEmpty不仅查明是否为Null还会查明是否为空。@JsonFormat可以在实体转化为json数据后指定格式。在前面学的@JsonIgnore可以忽略在实体转化为Json时忽略属性;

3.service层,记得把ID也传过去:

4.Mapper层:

获取文章分类的详情

获取文章详情就不写了,和上面几乎一样;

更新文章分类: 

注意点:

1.前端传来的Json数据通过@RequestBody转为category对象。@前端传来的参数通过@Validated来校验;

对校验规则进行分组:

1.如何定义分组?在实体类里面定义接口。

如何对校验项进行分组?通过groups属性进行赋值;

如何使用指定分组校验?给@validated注解的Value属性赋值,如下我们将其给了update校验组:

注意默认校验组是Default。 

学习时的疑惑:

1.@Notempty和@NotNull的区别是啥

@NotEmpty@NotNull 是 Java 中常用的注解,主要用于数据校验,但它们的作用和应用场景有所不同。

1. @NotNull
  • 定义@NotNull 是一个校验注解,用于检查某个字段是否为 null。如果字段值为 null,则校验失败。

  • 作用范围:可以应用于任何类型的字段,包括基本数据类型(如 intdouble 等)、包装类(如 IntegerDouble 等)、对象类型(如 String、自定义对象等)。

  • 示例

    public class User {@NotNull(message = "用户名不能为空")private String username;
    }

    如果 usernamenull,校验会失败,并抛出异常(通常由校验框架处理)。

2. @NotEmpty
  • 定义@NotEmpty 是一个校验注解,用于检查某个字段是否为空。它不仅检查字段是否为 null,还会检查集合、数组、字符串等是否为空。

  • 作用范围:通常用于集合(如 ListSet)、数组、字符串等类型。对于字符串,它会检查字符串是否为 null 或长度为 0;对于集合和数组,它会检查是否为 null 或长度为 0

  • 示例

    public class User {@NotEmpty(message = "用户名不能为空")private String username;@NotEmpty(message = "用户角色不能为空")private List<String> roles;
    }
    • 如果 usernamenull 或长度为 0(即空字符串),校验失败。

    • 如果 rolesnull 或为空集合(roles.size() == 0),校验失败。

3. 区别
  • 校验内容

    • @NotNull 只检查字段是否为 null,不关心字段的具体内容。

    • @NotEmpty 除了检查字段是否为 null,还会检查内容是否为空(如字符串长度为 0,集合或数组为空)。

  • 适用场景

    • @NotNull 适用于所有类型的字段,尤其是那些不能为 null 的字段。

    • @NotEmpty 更适合用于集合、数组和字符串等类型,确保它们不仅不为 null,而且有实际内容。

4. 补充说明
  • @NotBlank:这是另一个与 @NotEmpty 类似的注解,但只适用于字符串。它不仅检查字符串是否为 null 或空字符串,还会检查字符串是否只包含空白字符(如空格、制表符等)。例如:

    @NotBlank(message = "用户名不能为空或空白")
    private String username;

    如果 usernamenull、空字符串或只包含空白字符(如 " "),校验失败。

  • 框架支持:这些注解通常由校验框架(如 Hibernate Validator)提供支持,用于在运行时自动校验字段值。

总结来说,@NotNull@NotEmpty 的主要区别在于 @NotEmpty 会进一步检查字段的内容是否为空,而 @NotNull 只检查是否为 null

 实战第七课:文章管理接口实现

新增文章:

 自定义校验:

具体实现: 

1.自定义注解State,这个注解要有message、group、payload三个方法,其他的元注解要看明白它的作用,如Constraint它指明包含校验规则的类,Target指明可以在哪些部分使用,Retention指明可以保留在哪些运行阶段:

 2.包含效验规则的类,需要实现constraintValidator接口,注意<1,2>前后两个参数的作用。重写isValid方法提供效验规则:

 3.此时我们就可以用这个自定义的效验注解用于参数校验,它会阻挡不是“草稿”和“已发送”的参数。

文章列表查询(条件分页):

具体实现:

1.Controller层

注意前端传来的参数里categoryId和State是不一定会传的,所以要给他们加@RequestParam(requird=false)这个注解标明可能不会传。 

我们还设置了一个PageBean实体类用于存储页面数据,里面包含数据条数和数据。

2.service层

1.首先在service层我们要创建一个PageBean对象用于返回数据。

2.开启分页查询插件PageHelper,这个插件可以帮助进行分页查询,也就是在SQL语句后插入limit a,b。注意开启这个插件后,Mapper执行SQL语句返回的是Page<>对象而非List<>对象,需要进行强转否则数据不对。

3.调用Mapper,注意获取用户ID,用户只能查询自己的文章。

3.Mapper层

由于在Mapper里直接实现动态SQL是很复杂的,所以我们使用映射配置文件实现动态SQL。

注意namespace指明映射的是哪个Mapper类,id指明映射的方法,resultType指返回的实体类。

还要注意语法:

<mapper namespace="com.itheima.mapper.ArticleMapper"><!--映射配置文件实现动态SQL--><select id="list" resultType="com.itheima.pojo.Article">select * from article<where><if test="categoryId!=null">category_id=#{categoryId}</if><if test="state!=null">and state=#{state}</if>and create_user = #{userId}</where></select>
</mapper>

 总结:注意这一课我们学习了分页查询和条件分支(动态SQL)的实现这是很重要的知识点。

 一些疑惑: 

1.在service中为什么为啥不直接用as填充数据?

虽然 as 是一个 List<Article>,但它实际上是通过 PageHelper 分页插件处理后的结果。PageHelper 会将查询结果包装成一个特殊的 Page 类型对象(继承自 ArrayList),这个对象不仅包含了分页数据,还提供了额外的分页信息,如总记录数、总页数等。因此,直接使用 Page 对象来填充 PageBean 是更合理的选择。

实战第八课:文件上传

 具体实现:

创建一个新的Controller类用于文件上传。在这里我们使用Multipartfile实现文件上传。注意使用UUID产生一个随机的uid避免文件名重复导致覆盖。

 如何上传到阿里云服务器?

1.在阿里云创建好oss对象存储的bucket

2. 建立依赖并且创建阿里云上传文件的工具类,注意四个属性endpoint,ACCESS_KEY_ID,SECRET_ACCESS_KEY,bucket_name的意义和用处:

3.Controller层调用工具类方法,注意传入文件的输入流,通过MultipartFile类的方法:

 成功~

http://www.dtcms.com/wzjs/422591.html

相关文章:

  • 有主体新增网站2022最新时事新闻及点评
  • 建设的网站后台会自动退出是正常的站外seo是什么
  • 小规模网站开发税率销售系统
  • 二级域名可以单独做网站吗网络外贸推广
  • 大网站前端怎么做的交换链接名词解释
  • wordpress 搭建wiki廊坊seo推广
  • 网站收费怎么做搜索百度下载安装
  • apicloud手机版下载网站seo优化教程
  • 大数据开发培训机构哪家好百度推广优化
  • 360网站地图怎么做百度站长工具怎么关闭
  • 长沙 网站seo服务 网络服务防控措施持续优化
  • 建设企业网站收费吗百度云官网登录入口
  • 做双语网站用什么cms系统好百度seo优化技术
  • 济宁专业做网站个人发布信息的免费平台
  • 网站制作注意事项短视频搜索seo
  • 三门峡建设环境局网站代发关键词包收录
  • 湖南衡阳网站建设最新全国疫情实时大数据
  • wordpress商品多选聊城网站seo
  • 雅安网站开发百度线上推广
  • 网站建设销售前景高端seo服务
  • 外企外贸是做什么的seo外链技巧
  • 网站怎么做地区屏蔽js域名查询访问
  • 网站制作 北京网站建设公司互联网推广公司靠谱吗
  • 怎么查看什么公司做的网站百度问问首页登录
  • 汶上县建设局官方网站品牌营销策划与管理
  • 红安建设局官方网站朋友圈推广文案
  • 二维码 wordpress网站做优化一开始怎么做
  • 做网店的进货网站2023北京封控了
  • WordPress 上传头像 前端深圳seo优化公司
  • 做网站怎么赚钱的seo视频