🎉 添加工具类的说明文档
This commit is contained in:
parent
104d2f3847
commit
448c9c1c25
15
src/main/doc/学习笔记/JAVA 手机号码格式验证,使用正则表达式.md
Normal file
15
src/main/doc/学习笔记/JAVA 手机号码格式验证,使用正则表达式.md
Normal file
@ -0,0 +1,15 @@
|
||||
### JAVA 手机号码格式验证,使用正则表达式
|
||||
|
||||
```java
|
||||
public static boolean isValidPhoneNumber(String phoneNumber){
|
||||
|
||||
if((phoneNumber != null) && (!phoneNumber.isEmpty())){
|
||||
|
||||
return Pattern.matches("^1[3-9]d{9}$",phoneNumber);
|
||||
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
```
|
40
src/main/doc/学习笔记/Java 日期格式化.md
Normal file
40
src/main/doc/学习笔记/Java 日期格式化.md
Normal file
@ -0,0 +1,40 @@
|
||||
### Java 日期格式化
|
||||
#### 将birthday改为String类型
|
||||
```java
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class student {
|
||||
|
||||
private String birthday;
|
||||
}
|
||||
```
|
||||
#### 直接把格式好的时间设置进去,值得注意的是DateTimeFormatter是线程安全的。
|
||||
```java
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
||||
public class demo {
|
||||
|
||||
public static void main(String[] args) {
|
||||
student student = new student();
|
||||
String current = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||
student.setBirthday(current);
|
||||
System.out.println(student);
|
||||
}
|
||||
}
|
||||
```
|
||||
#### 效果:student(birthday=2024-02-17 01:36:22)
|
||||
### (扩展)Spring框架中将Date的格式化方案
|
||||
#### 在Spring框架,如果你需要将一个日期格式从后端传递给前端,你可以通过注解@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8") 进行返回。这样就可以直接在对象中(new Date())了
|
||||
```java
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class student {
|
||||
|
||||
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
|
||||
private String birthday;
|
||||
}
|
||||
```
|
29
src/main/doc/学习笔记/Java如何向数组里添加元素.md
Normal file
29
src/main/doc/学习笔记/Java如何向数组里添加元素.md
Normal file
@ -0,0 +1,29 @@
|
||||
### Java如何向数组里添加元素
|
||||
#### 1.已有的数组datecolumn和list集合
|
||||
```java
|
||||
String[] datecolumn = {"Mon", "Tue", "Wed"};
|
||||
List<String> list = new ArrayList<>();
|
||||
list.add("Thu");
|
||||
list.add("Fri");
|
||||
list.add("Sat");
|
||||
list.add("Sun");
|
||||
```
|
||||
#### 2.数组和集合add到titleList中
|
||||
```java
|
||||
List<String> titleList = new ArrayList<String>();
|
||||
//将datecolum数组转换list并add到titleList中
|
||||
titleList.addAll(Arrays.asList(datecolumn));
|
||||
//将list添加到titleList中
|
||||
titleList.addAll(list);
|
||||
```
|
||||
#### 3.titleList集合转换title数组
|
||||
```java
|
||||
String[] title = titleList.toArray(new String[titleList.size()]);
|
||||
```
|
||||
|
||||
#### 4.遍历title数组
|
||||
```java
|
||||
for (String string : title) {
|
||||
System.out.println(string);
|
||||
}
|
||||
```
|
63
src/main/doc/学习笔记/Mybatis (ParameterType) 如何传递多个不同类型的参数.md
Normal file
63
src/main/doc/学习笔记/Mybatis (ParameterType) 如何传递多个不同类型的参数.md
Normal file
@ -0,0 +1,63 @@
|
||||
### Mybatis (ParameterType) 如何传递多个不同类型的参数
|
||||
#### 方法一:不需要写parameterType参数。
|
||||
#### 由于是多参数那么就不能使用parameterType, 改用#{index}是第几个就用第几个的索引,索引从0开始
|
||||
```java
|
||||
public List<XXXBean> getXXXBeanList(String xxId, String xxCode);
|
||||
|
||||
<select id="getXXXBeanList" resultType="XXBean">
|
||||
select t.* from tableName where id = #{0} and name = #{1}
|
||||
</select>
|
||||
```
|
||||
#### 方法二:基于注解(最简单)
|
||||
#### 由于是多参数那么就不能使用parameterType, 这里用@Param来指定哪一个
|
||||
```java
|
||||
public List<XXXBean> getXXXBeanList(@Param("id")String id, @Param("code")String code);
|
||||
|
||||
<select id="getXXXBeanList" resultType="XXBean">
|
||||
select t.* from tableName where id = #{id} and name = #{code}
|
||||
</select>
|
||||
```
|
||||
#### 方法三:Map封装
|
||||
#### 其中hashmap是mybatis自己配置好的直接使用就行。map中key的名字是那个就在#{}使用那个。
|
||||
```java
|
||||
public List<XXXBean> getXXXBeanList(HashMap map);
|
||||
|
||||
<select id="getXXXBeanList" parameterType="hashmap" resultType="XXBean">
|
||||
select 字段... from XXX where id=#{xxId} code = #{xxCode}
|
||||
</select>
|
||||
```
|
||||
#### 方法四:List封装
|
||||
#### 传递list和map在资源消耗上肯定远大于方法一和方法二
|
||||
```java
|
||||
public List<XXXBean> getXXXBeanList(List<String> list);
|
||||
|
||||
<select id="getXXXBeanList" resultType="XXBean">
|
||||
select 字段... from XXX where id in
|
||||
<foreach item="item" index="index" collection="list" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</select>
|
||||
```
|
||||
|
||||
```java
|
||||
#{}
|
||||
|
||||
MyBatis处理 #{ } 占位符,使用的 JDBC 对象是 PreparedStatement 对象,执行sql语句的效率更高。
|
||||
|
||||
使用 PreparedStatement 对象,能够避免 sql 注入,使得sql语句的执行更加安全。
|
||||
|
||||
#{ } 常常作为列值使用,位于sql语句中等号的右侧;#{ } 位置的值与数据类型是相关的。
|
||||
|
||||
```
|
||||
|
||||
```java
|
||||
${}
|
||||
|
||||
MyBatis处理 ${ } 占位符,使用的 JDBC 对象是 Statement 对象,执行sql语句的效率相对于 #{ } 占位符要更低。
|
||||
|
||||
${ } 占位符的值,使用的是字符串连接的方式,有 sql 注入的风险,同时也存在代码安全的问题。
|
||||
|
||||
${ } 占位符中的数据是原模原样的,不会区分数据类型。
|
||||
|
||||
${ } 占位符常用作表名或列名,这里推荐在能保证数据安全的情况下使用 ${ }。
|
||||
```
|
32
src/main/doc/学习笔记/RestTemple请求api接口发送formData形式.md
Normal file
32
src/main/doc/学习笔记/RestTemple请求api接口发送formData形式.md
Normal file
@ -0,0 +1,32 @@
|
||||
### RestTemple请求api接口发送formData形式
|
||||
```java
|
||||
RestTemplate restTemplate = new RestTemplate();
|
||||
|
||||
// 用于请求报错后,查看报错详情的(如果接口有报错详情的话)
|
||||
restTemplate.setErrorHandler(new ResponseErrorHandler() {
|
||||
@Override
|
||||
public boolean hasError(ClientHttpResponse clientHttpResponse) throws IOException {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleError(ClientHttpResponse clientHttpResponse) throws IOException {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
// 用于formData请求方式
|
||||
MultiValueMap<String,Object> params = new LinkedMultiValueMap<>();
|
||||
params.add("key","value");
|
||||
|
||||
// MultiValueMap遇到需要填充list,可参考下面做法
|
||||
for (int i = 0; i < AttachmentList.size(); i++) {
|
||||
params.add("AttachmentList["+i+"].fileName",AttachmentList.get(i).getFileName());
|
||||
params.add("AttachmentList["+i+"].attachmentUrl",AttachmentList.get(i).getAttachmentUrl());
|
||||
params.add("AttachmentList["+i+"].fileSize",AttachmentList.get(i).getFileSize());
|
||||
}
|
||||
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
|
||||
HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<>(params, headers);
|
||||
```
|
25
src/main/doc/学习笔记/常用Linux命令.md
Normal file
25
src/main/doc/学习笔记/常用Linux命令.md
Normal file
@ -0,0 +1,25 @@
|
||||
### 常用Linux命令
|
||||
```shell
|
||||
#jar包启动
|
||||
java -jar xxx.jar
|
||||
nohup java -jar xxx.jar >server.log 2>$1 $
|
||||
nohup java -jar -Xmx2g -Xms2g xxx.jar > logs/serverLog.log 2>&1 &
|
||||
|
||||
#查询所有端口
|
||||
netstat -tuln
|
||||
#根据进程号查询端口
|
||||
netstat -nlp | grep pid
|
||||
#根据端口号查进程号
|
||||
netstat -nlp | grep 端口号
|
||||
#查询进程pid
|
||||
ps -ef | grep
|
||||
netstat -anp | grep PID
|
||||
|
||||
#文件上传
|
||||
rz
|
||||
#文件下载
|
||||
sz
|
||||
|
||||
#快速查询进程号
|
||||
pgrep -f xxxx
|
||||
```
|
Loading…
x
Reference in New Issue
Block a user