知识碎片随手记-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());
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值