diff --git a/src/main/doc/学习笔记/JAVA 手机号码格式验证,使用正则表达式.md b/src/main/doc/学习笔记/JAVA 手机号码格式验证,使用正则表达式.md new file mode 100644 index 0000000..9d1c972 --- /dev/null +++ b/src/main/doc/学习笔记/JAVA 手机号码格式验证,使用正则表达式.md @@ -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; + +} +``` \ No newline at end of file diff --git a/src/main/doc/学习笔记/Java 日期格式化.md b/src/main/doc/学习笔记/Java 日期格式化.md new file mode 100644 index 0000000..09ae22c --- /dev/null +++ b/src/main/doc/学习笔记/Java 日期格式化.md @@ -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; +} +``` \ No newline at end of file diff --git a/src/main/doc/学习笔记/Java如何向数组里添加元素.md b/src/main/doc/学习笔记/Java如何向数组里添加元素.md new file mode 100644 index 0000000..fb25041 --- /dev/null +++ b/src/main/doc/学习笔记/Java如何向数组里添加元素.md @@ -0,0 +1,29 @@ +### Java如何向数组里添加元素 +#### 1.已有的数组datecolumn和list集合 +```java +String[] datecolumn = {"Mon", "Tue", "Wed"}; +List list = new ArrayList<>(); +list.add("Thu"); +list.add("Fri"); +list.add("Sat"); +list.add("Sun"); +``` +#### 2.数组和集合add到titleList中 +```java +List titleList = new ArrayList(); +//将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); +} +``` \ No newline at end of file diff --git a/src/main/doc/学习笔记/Mybatis (ParameterType) 如何传递多个不同类型的参数.md b/src/main/doc/学习笔记/Mybatis (ParameterType) 如何传递多个不同类型的参数.md new file mode 100644 index 0000000..6cdce99 --- /dev/null +++ b/src/main/doc/学习笔记/Mybatis (ParameterType) 如何传递多个不同类型的参数.md @@ -0,0 +1,63 @@ +### Mybatis (ParameterType) 如何传递多个不同类型的参数 +#### 方法一:不需要写parameterType参数。 +#### 由于是多参数那么就不能使用parameterType, 改用#{index}是第几个就用第几个的索引,索引从0开始 +```java +public List getXXXBeanList(String xxId, String xxCode); + + +``` +#### 方法二:基于注解(最简单) +#### 由于是多参数那么就不能使用parameterType, 这里用@Param来指定哪一个 +```java +public List getXXXBeanList(@Param("id")String id, @Param("code")String code); + + +``` +#### 方法三:Map封装 +#### 其中hashmap是mybatis自己配置好的直接使用就行。map中key的名字是那个就在#{}使用那个。 +```java +public List getXXXBeanList(HashMap map); + + +``` +#### 方法四:List封装 +#### 传递list和map在资源消耗上肯定远大于方法一和方法二 +```java +public List getXXXBeanList(List list); + + +``` + +```java +#{} + +MyBatis处理 #{ } 占位符,使用的 JDBC 对象是 PreparedStatement 对象,执行sql语句的效率更高。 + +使用 PreparedStatement 对象,能够避免 sql 注入,使得sql语句的执行更加安全。 + +#{ } 常常作为列值使用,位于sql语句中等号的右侧;#{ } 位置的值与数据类型是相关的。 + +``` + +```java +${} + +MyBatis处理 ${ } 占位符,使用的 JDBC 对象是 Statement 对象,执行sql语句的效率相对于 #{ } 占位符要更低。 + +${ } 占位符的值,使用的是字符串连接的方式,有 sql 注入的风险,同时也存在代码安全的问题。 + +${ } 占位符中的数据是原模原样的,不会区分数据类型。 + +${ } 占位符常用作表名或列名,这里推荐在能保证数据安全的情况下使用 ${ }。 +``` \ No newline at end of file diff --git a/src/main/doc/学习笔记/RestTemple请求api接口发送formData形式.md b/src/main/doc/学习笔记/RestTemple请求api接口发送formData形式.md new file mode 100644 index 0000000..e7f9a55 --- /dev/null +++ b/src/main/doc/学习笔记/RestTemple请求api接口发送formData形式.md @@ -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 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> httpEntity = new HttpEntity<>(params, headers); +``` \ No newline at end of file diff --git a/src/main/doc/学习笔记/常用Linux命令.md b/src/main/doc/学习笔记/常用Linux命令.md new file mode 100644 index 0000000..61a05bf --- /dev/null +++ b/src/main/doc/学习笔记/常用Linux命令.md @@ -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 +``` \ No newline at end of file