SQL片段、@RequestBody注解、Pattern-regix、MD5加密
<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>
- @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中获取值。
- Pattern类
可以用来做字符串匹配操作。主要作用是将一个字符串的正则表达式编译为一个模版对象(Pattern object)。常用方法:
- 编译正则表达式:Pattern.compile(String regix),将一个字符串形式的正则表达式编译成pattern对象。
- 获取正则表达式信息:
- Pattern.pattern():返回编译过的正则表达式字符串
- Pattern.flags():返回编译时使用的标志位
- 创建Matcher对象:Pattern.matcher(CharSequence input):基于已编译的Pattern对象创建一个Matcher对象,用于对输入的字符序列执行匹配操作。
- 有关正则表达式语法的信息:
Pattern.split(CharSequence input):基于此Pattern对象分割输入字符串,返回一个字符串数组。 - 常用的Matcher类方法(与Pattern配合使用)包括:
- Matcher.matches():判断整个输入序列是否与该Pattern匹配。
- Matcher.find():查找输入序列中是否存在符合该Pattern的部分匹配,并将查找指针移到下一个匹配处。
- Matcher.group(int group):获取匹配到的特定分组的内容。
- Matcher.replaceAll(String replacement):将输入序列中所有匹配的部分替换为指定的字符串。
- 常用方法举例:
String validPattern = "[`~!@#$%^&*()+=|{}':;',\\\\[\\\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]";
Matcher matcher = Pattern.compile(validPattern).matcher(userAccount);
if (matcher.find()) {
return -1;
}
- 加密举例:
String Apassword = DigestUtils.md5DigestAsHex((SALT + userPassword).getBytes());