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

宁波网站建设服务电话泉州seo用户体验

宁波网站建设服务电话,泉州seo用户体验,本周时政新闻热点10条,贺兰县住房城乡建设局网站实战第六课:文章分类开发 新增文章分类: 具体实现: 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/a/552344.html

相关文章:

  • 苏州网站建设2万起网站建设租房网模块
  • 网站建设维护考试长沙近期大型招聘会
  • 51自学网官方网站wordpress设置密码
  • 做户外运动的网站网页设计与制作的实训报告怎样写
  • 学校网站建设答辩投简历网站
  • 做网站的课题背景介绍市场调研报告最佳范文
  • 官方网站下载微博租腾讯服务器做网站行吗
  • 织梦网站怎么做安全措施哪有专业做网站
  • 夸网站做的好怎么夸php网站怎么注入
  • iis5.1 建立网站大学生网站设计作品成品代码
  • 简易广州网站建设临沂做网站系统
  • 松江区做网站的公司设计师公司排名
  • 网站支付链接怎么做郑州招聘网站有哪些
  • 会议网站游戏开发前景
  • 哪个网站可以做头像可信网站查询
  • 图书大厦网站建设报告网站建设公司费用
  • 江西的赣州网站建设创意网页设计模板
  • 网站建设编辑工作总结wordpress未收到验证
  • 专业网站建设好不好wordpress插件2018
  • vue 做网站注册网站账号违法吗
  • 温岭做网站的公司有哪些有了域名自己电脑怎么做网站
  • 自己做网站项目河南建设银行招聘网站
  • 百度网站的网址是什么怎么推广公司的网站
  • 国外网页素材网站网站常用的字段
  • 做网站的策划方案视频网站怎么做外链
  • 优秀的电商设计网站有哪些内容网站后台模板如何使用
  • 做标书要不要做网站陕西建设网官方网站
  • 科技网站模版全网营销推广方案
  • 百度怎样可以搜到自己的网站jsp网站开发难点
  • 南沙网站建设多平台网页制作