知识碎片随手记-1

SQL片段、@RequestBody注解、Pattern-regix、MD5加密
  1. <sql id=Base_Column_list>这句的意思:表示在mybatis的xml文件中定义可重用的SQL片段,如:
<sql id="Base_Column_List">
    column1, column2, column3
</sql>

当在其他SQL中需要引用上述片段时,可通过<include refid="Base_Column_List"/>来引用,如:

<select id="selectSomething" resultType="YourResultType">
    SELECT 
        <include refid="Base_Column_List"/>
    FROM your_table
    WHERE some_condition
</select>
  1. @RequestBody注解的作用:用于处理HTTP请求体中的内容。当客户端发起一个POST\PUT\PATCH请求,并在请求体中携带数据(JSON或xml),该注解可以帮助我们将这些数据自动绑定到controller方法的参数对象上。
    具体作用包括:
  • 数据绑定:例如当接收到JSON数据时,自动将JSON字符串反序列化为Java bean。
  • 自动类型转换:根据content-type请求头信息,如application/json或application/xml,解析请求体内容并转换为java类型。
  • 简化处理流程:无需手动解析
  • 校验和验证:当与spring Validation结合使用时,若数据不符合预期格式或约束条件,框架会抛出相应错误。
    类似注解还有:
  • @RequestParam:用于处理HTTP请求中的查询参数或路径参数
  • @PathVariable:用于处理URL路径中的动态参数,这些参数通常用花括号{}包裹在URL模版中,如;
@GetMapping("/users/{userId}/orders/{orderId}")
public Order getOrder(@PathVariable Long userId, @PathVariable Long orderId) {
    // ...
}
  • @ModelAttribute:用于填充命令对象或模型属性。可以从请求参数、session、model等来源获取数据。主要用于表单提交的POST请求。
  • @CookieValue:用于从HTTP请求的Cookie中获取值。
  1. Pattern类
    可以用来做字符串匹配操作。主要作用是将一个字符串的正则表达式编译为一个模版对象(Pattern object)。常用方法:
  • 编译正则表达式:Pattern.compile(String regix),将一个字符串形式的正则表达式编译成pattern对象。
  • 获取正则表达式信息:
    1. Pattern.pattern():返回编译过的正则表达式字符串
    2. Pattern.flags():返回编译时使用的标志位
  • 创建Matcher对象:Pattern.matcher(CharSequence input):基于已编译的Pattern对象创建一个Matcher对象,用于对输入的字符序列执行匹配操作。
  • 有关正则表达式语法的信息:
    Pattern.split(CharSequence input):基于此Pattern对象分割输入字符串,返回一个字符串数组。
  • 常用的Matcher类方法(与Pattern配合使用)包括:
    1. Matcher.matches():判断整个输入序列是否与该Pattern匹配。
    2. Matcher.find():查找输入序列中是否存在符合该Pattern的部分匹配,并将查找指针移到下一个匹配处。
    3. Matcher.group(int group):获取匹配到的特定分组的内容。
    4. Matcher.replaceAll(String replacement):将输入序列中所有匹配的部分替换为指定的字符串。
  • 常用方法举例:
String validPattern = "[`~!@#$%^&*()+=|{}':;',\\\\[\\\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]";
        Matcher matcher = Pattern.compile(validPattern).matcher(userAccount);
        if (matcher.find()) {
            return -1;
        }
  1. 加密举例:
String Apassword = DigestUtils.md5DigestAsHex((SALT + userPassword).getBytes());

相关推荐

  1. 知识碎片随手-1

    2024-04-11 15:12:02       14 阅读
  2. Android碎片知识

    2024-04-11 15:12:02       40 阅读
  3. 知识碎片收集

    2024-04-11 15:12:02       17 阅读
  4. 碎片知识】2024_05_15

    2024-04-11 15:12:02       10 阅读
  5. sed小实践(随手

    2024-04-11 15:12:02       9 阅读
  6. 知识碎片-docker初始化db,自动导入SQL

    2024-04-11 15:12:02       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-11 15:12:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-11 15:12:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-11 15:12:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-11 15:12:02       18 阅读

热门阅读

  1. c# 实现Quartz任务调度

    2024-04-11 15:12:02       15 阅读
  2. MySQL:统计总条数时去重

    2024-04-11 15:12:02       14 阅读
  3. python时间&内存计算

    2024-04-11 15:12:02       12 阅读
  4. 自动驾驶涉及相关的技术

    2024-04-11 15:12:02       14 阅读
  5. 死锁以及如何避免死锁

    2024-04-11 15:12:02       15 阅读
  6. 如何理解JVM

    2024-04-11 15:12:02       14 阅读
  7. Spring之事务底层源码解析

    2024-04-11 15:12:02       13 阅读
  8. CSS 选择器 – 类、名称、子选择器

    2024-04-11 15:12:02       14 阅读
  9. 为什么俗套的电邮“钓鱼”攻击,频频得手

    2024-04-11 15:12:02       14 阅读
  10. 【c/c++】fprintf和fwrite使用及作用介绍

    2024-04-11 15:12:02       14 阅读
  11. Part1_带复位的8通道I2C开关PCA9548A使用方法介绍

    2024-04-11 15:12:02       16 阅读
  12. 关于c++的命名空间

    2024-04-11 15:12:02       13 阅读