![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JAVA基础
java
伤魂孤傲
物竞天择,适者生存
展开
-
mybatisplus格式化mysql日期查询
场景:数据库字段是年月日时分秒通过java转换时间格式查询当天数据。原创 2024-04-11 15:42:38 · 1059 阅读 · 0 评论 -
stream流根据某个属性去重
需求:根据学生名称去重,获取新的集合。原创 2024-01-23 15:14:31 · 569 阅读 · 0 评论 -
mybatisPlus注解将List集合插入到数据库
将List集合插入到数据库原创 2024-01-18 16:07:17 · 906 阅读 · 0 评论 -
EasyExcel写入excel模板
exel导入模板原创 2022-11-28 12:02:45 · 1343 阅读 · 0 评论 -
Stream流中skip和limit组合使用
Java 8 Stream中的两个方法:skip()和limit()可以组合使用skip()方法用于跳过前面n个元素,然后再返回新的流limit()方法,它是用于限制流中元素的个数,即取前n个元素,返回新的流public static void main(String[] args) { ArrayList<Integer> integers = new ArrayList<>(); integers.add(1); integers.add(2);.原创 2022-05-30 11:41:20 · 380 阅读 · 0 评论 -
@Transactional事务,为啥我不建议使用
事务管理在系统开发中是不可缺少的一部分,Spring提供了很好事务管理机制,主要分为编程式事务和声明式事务两种。关于事务的基础知识,如什么是事务,数据库事务以及Spring事务的ACID、隔离级别、传播机制、行为等,就不在这篇文章中详细介绍了。默认大家都有一定的了解。本文,作者会先简单介绍下什么是声明式事务和编程式事务,再说一下为什么我不建议使用声明式事务。编程式事务基于底层的API,如PlatformTransactionManager、TransactionDefinition 和 Transa转载 2022-04-11 15:23:36 · 741 阅读 · 0 评论 -
java计算两个时间差多少小时 多少分钟
public static void main(String[] args) throws ParseException { Date date = new Date();//当前时间 String otherTime = "2021-11-05 16:00:00"; SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date time = sf.par...原创 2021-11-05 16:11:52 · 7470 阅读 · 0 评论 -
List集合转HashMap乱序
原因:HashMap是无序;LinkedHashMap是有序,当我们希望有顺序地去存储key-value时,就需要使用LinkedHashMap了。解决办法 list.stream().collect(Collectors.toMap(集合中类::集合中类属性, 集合中类::集合中类属性, (k1, k2) -> k2, LinkedHashMap::new));...原创 2021-03-16 11:04:57 · 1011 阅读 · 0 评论 -
java实现删除文件目录下的所有文件
public class abs { public static void main(String[] args) { File file = new File("D:\\sql\\q"); if (file.exists()) { deleteFile(file); } } public static void deleteFile(File file) { //取得这个目录下的所有子文件原创 2021-02-19 09:43:05 · 456 阅读 · 0 评论 -
@Scheduled method ‘execute‘: For input string: “L“
出现这个错误的原因是Spring默认定时@Scheduled不支持L关键字解决方案:首先,为每个可能的最后几天调用调度程序(28,29,30,31)。然后,在函数块内用if块检查这是否是最后一个日期。如果是,则执行预期的任务。@Scheduled(cron = "0 15 10 28-31 * ?")public void execute() { final Calendar c = Calendar.getInstance(); if (c.get(Calendar.DATE) == c..原创 2020-12-10 14:39:15 · 3271 阅读 · 0 评论 -
你的登录接口真的安全吗?
前言这篇文章主要是和大家聊一聊,在设计一个登录接口时,不仅仅是功能上的实现,在安全方面,我们还需要考虑哪些地方。暴力破解!只要网站是暴露在公网的,那么很大概率上会被人盯上,尝试爆破这种简单且有效的方式:通过各种方式获得了网站的用户名之后,通过编写程序来遍历所有可能的密码,直至找到正确的密码为止伪代码如下:# 密码字典password\_dict = \[\]# 登录接口login\_url = ''def attack(username): for password in pass转载 2020-12-08 10:55:09 · 118 阅读 · 0 评论 -
Stream计算集合属性总和
计算一个number类型的List对象总和Integer[] integerArray = {1, 3, 5, 10, 18};List<Integer> list = new ArrayList<>(Arrays.asList(integerArray));IntSummaryStatistics summaryStatistics = list.stream().mapToInt((s) -> s).summaryStatistics();System.out.p转载 2020-12-02 17:02:37 · 3171 阅读 · 0 评论 -
java8新特性之lambda表达式与Stream流
Lambda表达式Lambda是一个匿名函数,可以理解为一段可以传递的代码(将代码像数据一样传递);可以写出更简洁、更灵活的代码;作为一种更紧凑的代码风格,是Java语言表达能力得到提升。lambda语法lambda语法:(定义参数)->(定义方法体)// 语法格式一: 无参数 无返回值 () -> System.out.println("语法格式一"); Runnable runnable = () -> System.out.println(原创 2020-11-21 17:30:15 · 179 阅读 · 0 评论 -
后台接收list集合对象
springMVC接收List对象以及List对象与其它对象一起传参数的使用方法//前端同上//controller层 @RequestMapping(value = "/test/testInOut", method = RequestMethod.POST) @ResponseBody public void testInOut( @RequestBody List<Map<String,String>> faultList ){ // spring MVC只能解析.原创 2020-11-11 15:56:26 · 2868 阅读 · 1 评论 -
java中的Map如何遍历key和value
package com.map1;import org.junit.Test;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;public class Main1 { @Test public void test1(){ Map map=new HashMap(); map.put("n1转载 2020-11-09 16:45:15 · 1618 阅读 · 0 评论 -
RestTemplate GET请求返回json字符串
1.创建RestTemplate对象 RestTemplate restTemplate = new RestTemplate(); ResponseErrorHandler responseErrorHandler = new ResponseErrorHandler() { @Override public boolean hasError(ClientHttpResponse response) throws IOException {原创 2020-10-13 17:20:27 · 4180 阅读 · 2 评论 -
mysql 如何删除String类型字段的双引号
我有一张表,其名为office_address的列有双引号字符串,如"Hello World!"。现在我想只用字符串Hello World!替换双引号字符串。我怎样才能通过mySql查询来完成这项工作。如何从mySql中的字段值中删除双引号?表名:client_information列名:office_address使用TRIM()函数:mysql> SELECT TRIM('"' FROM '"Hello World!"'); +------------------------------转载 2020-09-27 17:21:04 · 3073 阅读 · 0 评论 -
java工具包大全
项目开发常用工具包tools-common (Java常用工具整合)tools-excel (Excel框架)tools-starter-swagger (快速集成Swagger)tools-httpclient (http请求工具)tools-cache (分布式缓存)tools-aliyun (阿里云OSS和短信工具)tools-auth (权限框架)请注意,项目JDK版本支持1.8+git地址...原创 2020-09-21 10:46:18 · 187 阅读 · 0 评论 -
使用tools-excel进行excel导入导出
一、安装依赖推荐使用最新版本,可通过文章末尾官方文档链接跳转查看<dependency> <groupId>cn.gjing</groupId> <artifactId>tools-excel</artifactId> <version>2.2.8</version></dependency>二、Excel导出1、单表头定义Excel映射实体, @Data是lombok的注解原创 2020-09-18 17:10:17 · 737 阅读 · 0 评论 -
Spring Boot使用String Task定时任务
一、JAVA常见的几种定时任务比较Timer:jdk自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让程序按照某一个频度执行,但不能在指定时间运行,一般很少使用,主要用于非Spring项目简单的任务调度。Spring Task:Spring3.0以后自带的Task,可以将它看成一个轻量级的Quartz,使用起来比Quartz简单很多,在Spring应用中,直接使用@Scheduled注解即可,但对于集群项目比较麻烦,需要避免集群环境原创 2020-09-12 10:56:01 · 176 阅读 · 0 评论 -
mybatis-plus 属性为空时判断问题
mybatis-plus 属性为空时判断问题最近在做项目时,发现前端调用查询接口,发现接口返回数据不对。我通过日志发现前端查询字段值为空时,竟然被当作一个条件,因为后端采用的mybatis-plus,通过官网我找到了一个配置mybatis-plus: global-config: db-config: select-strategy: not_empty参考...原创 2020-09-11 13:50:02 · 1953 阅读 · 0 评论 -
Linux如何运行和停止jar包
1运行jar包的方式有三种java -jar xxxxx.jar // 当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出java -jar xxxxx.jar & //当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。nohup Java -jar xxxxxx.jar & //意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行总结就是第一二种方式就是ssh窗口开着才运行,第三种方式是窗口关闭依然运行!运行jar包的步骤如下:原创 2020-09-09 10:21:27 · 1413 阅读 · 0 评论 -
assert()函数用法
assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include <assert.h>void assert( int expression );assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badptr.c:#include <stdio.h>#include <原创 2020-08-26 11:37:23 · 258 阅读 · 0 评论 -
java8 stream:检查list集合中是否存在某个值
需求分析一个list集合内有name,sex字段,需要判断list中是否有name有叫张三的人,如果有返回truelist.stream().filter(m->m.getName().equals("张三")).findAny().isPresent();原创 2020-08-26 11:20:28 · 30791 阅读 · 5 评论 -
如何限制同一客户端登录的用户数量以及禁止同一用户同时在不同客户端登录
在web应用系统中,出于安全性考虑,经常需要对同一客户端登录的用户数量和一个客户同时在多个客户端登陆进行限制。具体一点就是:1、在同一台电脑上一次只允许有一个用户登录系统,2、一个用户在同一时间只允许在一个客户端登录。我最近做的一个系统就遇到了这样的问题,本来系统已经开发完成了,但是安全测评没有通过,就是因为没有做这两个限制。怎么来做这样的限制呢?我在网上找了很久,发现问这个问题的人很多,但是没有找到特别清楚的答案。后来自己摸索着,看了一些书,终于找到解决办法了。要解决这个问题实际上不难,对于高手来转载 2020-08-03 10:24:31 · 1685 阅读 · 0 评论 -
ubuntu 16.04搭建svn服务器
一 搭建svn命令: sudo apt-get install subversion二 先创建好仓库目录,并设置777权限,再创建svn仓库1.mkdir /home/svn2.mkdir /home/svn/project3.chmod -R 777 /home/svn 设置svn为777权限4.创建svn仓库svnadmin create /home/svn/project这时project目录下会生成这些文件5.将db设置为777权限chmod -R 777 /home/svn/原创 2020-07-20 15:29:12 · 158 阅读 · 0 评论 -
idea使用Tomcat出现 java.lang.OutOfMemoryError: PermGen space 错误的原因及解决方法
1、问题:tomcat服务:java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: PermGen space;2、问题分析: PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Gar原创 2020-07-20 13:43:53 · 1093 阅读 · 0 评论 -
Spring Security详解
Spring Security 介绍Spring Security 应该属于 Spring 全家桶中学习曲线比较陡峭的几个模块之一,下面我将从起源和定义这两个方面来简单介绍一下它。起源: Spring Security 实际上起源于 Acegi Security,这个框架能为基于 Spring 的企业应用提供强大而灵活安全访问控制解决方案,并且框架这个充分利用 Spring 的 IoC 和 AOP 功能,提供声明式安全访问控制的功能。后面,随着这个项目发展, Acegi Security 成为了Spr转载 2020-07-09 10:37:07 · 397 阅读 · 0 评论 -
springboot + redis + 注解 + 拦截器 实现接口幂等性校验
一、概念幂等性, 通俗的说就是一个接口, 多次发起同一个请求, 必须保证操作只能执行一次 比如:订单接口, 不能多次创建订单支付接口, 重复支付同一笔订单只能扣一次钱支付宝回调接口, 可能会多次回调, 必须处理重复回调普通表单提交接口, 因为网络超时等原因多次点击提交, 只能成功一次 等等二、常见解决方案唯一索引 – 防止新增脏数据token机制 – 防止页面重复提交悲观锁 – 获取数据的时候加锁(锁表或锁行)乐观锁 – 基于版本号version实现, 在更新数据那一刻校验数据分布式锁转载 2020-06-18 18:37:03 · 91 阅读 · 0 评论 -
MyBatis 中的trim标签
mybatis的trim标签一般用于去除sql语句中多余的and关键字,逗号,或者给sql语句前拼接“where“、“set“以及“values(“ 等前缀,或者添加“)“等后缀,可用于选择性插入、更新、删除或者条件查询等操作。以下是trim标签中涉及到的属性:下面使用几个例子来说明trim标签的使用。1、使用trim标签去除多余的and关键字有这样的一个例子:<select id="findActiveBlogLike" resultType="Blog"> S.转载 2020-06-18 18:27:39 · 1255 阅读 · 0 评论