Java
Andrew_Yuan
学生
展开
-
如何在数字前加上0,如将1变成01
String currentId = String.format("%02d", Integer.valueOf(currentId) + 1);原创 2021-01-06 10:37:01 · 2271 阅读 · 0 评论 -
用AOP来做操作记录与加密工具类
//1.注解类import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Target(ElementType.METHOD) //注解放置的目标位置,METH.原创 2020-12-26 18:19:18 · 233 阅读 · 0 评论 -
idea 复制项目并且重命名(项目另存为)方法
一、目的对于一个基础的代码,只是想测试一些新功能,但是不想在原始项目中更改代码,因为这样会导致原始基础代码变动。所以,希望复制一份新项目,在新代码中更改,但是,发现简单复制竟然不行。这就尴尬,之前没遇到过,赶紧查找,终于成功,在此记录一下!二、方法1.直接在浏览器中复制项目2.删除.idea下的workspace.xml3.修改项目根目录下iml文件,与新项目的名字一致4.重新打开项目即可!...转载 2020-12-18 10:28:21 · 4796 阅读 · 0 评论 -
idea导入项目,文件爆红
idea工具打开maven项目,无add as maven project提示,解决方法:选择pom.xml,右键,选择 Add as Maven Project原创 2020-10-14 17:24:16 · 1199 阅读 · 0 评论 -
根据自己的需要将list中的某个字段取出来组成string
根据自己的需要将list中的某个字段取出来组成stringString roles = (String) roleList.stream().map(obj -> ((JSONObject) obj).getString("roleName")) .collect(Collectors.joining(";"));原创 2020-09-15 13:27:54 · 2214 阅读 · 0 评论 -
MySQL Left Join(左连接) 耗时严重的问题
首先用Explain关键字去分析耗时,然后找到最耗时的left join中的查询条件,新建一个索引试试。注意:索引虽好,可不要贪杯哦!原创 2020-08-27 10:30:30 · 1176 阅读 · 0 评论 -
java中逗号分隔的字符串和List相互转换
1、将逗号分隔的字符串转换为ListString str = "a,b,c";List<String> result = Arrays.asList(str.split(","));2、将List转换为逗号分隔的字符串(1)利用Guava的JoinerList<String> list = new ArrayList<String>()...转载 2020-03-25 13:19:18 · 534 阅读 · 0 评论 -
group_concat的用法(用于一对多时将多个返回结果拼成逗号分割的字符串返回)
一、concat()函数1、功能:将多个字符串连接成一个字符串。2、语法:concat(str1, str2,...)返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。3、举例:例1:select concat (name , ',' , score) as info from t1;二、concat_ws()函数1、功能:和conca...转载 2020-03-24 11:15:16 · 2314 阅读 · 0 评论 -
Date入参和出参格式_@DateTimeFormat 和 @JsonFormat 注解
1. 准备定义一个pojo,它有一个 java.util.Date 类型的属性 date。 import java.util.Date; public class DateVo { private Date date; public void setDate(Date date){ this.da...转载 2019-04-03 10:50:56 · 6119 阅读 · 0 评论 -
解决流读取导致StringBuilder.toString()乱码问题
乱码问题StringBuilder sb = new StringBuilder(); String s = new String(sb.toString().getBytes("ios8859-1"),"UTF-8");顺便回忆一下String, StringBuilder, StringBuffer直接的区别: String对象每次追加字符串的时候都是创建了新的对象,消耗时间最长...原创 2019-04-17 09:57:39 · 7531 阅读 · 2 评论 -
SpringMVC与前/后台的json数据交互
转载于:https://blog.csdn.net/Andrew_Yuan/article/details/89398149 json数据格式在接口调用中、html页面中比较常用,json格式比较简单,解析也比较方便,所以使用很普遍。在SpringMVC中,也支持对json数据的解析和转换,这篇文章主要总结一下在Sprin...转载 2019-04-19 14:46:14 · 236 阅读 · 0 评论 -
mybatis中的Criteria及对应xml的解析
Criteria的and和or进行联合查询DemoExample example=new DemoExample ();DemoExample.Criteria criteria=example.createCriteria();criteria.andidEqualTo(id);criteria.andStatusEqualTo("0"); DemoExample.C...原创 2019-04-12 14:13:27 · 5109 阅读 · 2 评论 -
使用MapperScannerConfigurer简化MyBatis配置
MyBatis的一大亮点就是可以不用DAO的实现类。如果没有实现类,Spring如何为Service注入DAO的实例呢?MyBatis-Spring提供了一个MapperFactoryBean,可以将数据映射接口转为Spring Bean。<div><bean id="userDao" class="org.mybatis.spring.mapper.MapperFac...转载 2019-04-10 15:10:52 · 214 阅读 · 0 评论 -
搭建ssm项目需要配置的一些xml文件
搭建ssm项目需要配置的xml文件:1.spring.xml <!-- 自动注入 --> <context:component-scan base-package="com.zhy.service.impl" />2.spring-mvc.xml <!-- 启用spring mvc 注解 --> <contex...原创 2019-04-10 11:24:33 · 552 阅读 · 0 评论 -
Quartz 定时器任务调度配置(以及如何配置quartz启动执行一次)
1. 添加maven依赖。pom.xml 中添加jar文件<!-- 作业任务调度机制 --><dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <...转载 2019-04-04 10:44:15 · 2708 阅读 · 0 评论 -
java excel 导出时长数字变成科学计数法的解决方法
今天在做excel导出的时候,导出的表格中长度大于11的数字会自动用科学计数法显示。一开始,我想着直接将数据全部转为string类型,没想到还是无法解决问题(可能是excel工具自动识别数字,又将其转成科学计数了)。后来通过百度发现了多种解决方法,下面两种个人觉得效率比较高,代码改动最少:将要导出的数转为BigDecimal类型,在使用toPlainString转换为String类型...原创 2019-04-18 13:59:31 · 7795 阅读 · 0 评论 -
java 导出excel实例(内含通用excel导出工具类)
1.创建一个ExportPropertiesDto,用于动态导出表头(前端传过来的json数组类似:[{"field":"year","fieldName":"年份"},{"field":"departmentName","fieldName":"部门"},{"field":"typeName","fieldName":"类型名"}])import java.io.Serializable;...原创 2019-04-18 15:02:49 · 553 阅读 · 0 评论 -
java1.8新特性Stream接口
*List<String>转换为List<Integer>List<Integer> codesInteger = codes.stream().map(Integer::parseInt).collect(Collectors.toList());1.distinct()是Stream接口的方法。distinct()使用hashCode()和e...原创 2019-04-18 16:45:41 · 189 阅读 · 0 评论 -
Slf4j与log4j及log4j2的关系及使用方法
Slf4j与log4j及log4j2的关系及使用方法 slf4jslf4j仅仅是一个为Java程序提供日志输出的统一接口,并不是一个具体的日志实现方案,就比如JDBC一样,只是一种规则而已,所以单独的slf4j是不能工作的,必须搭配其他具体的日志实现方案,比如log4j或者log4j2,要在系统中使用slf4j,我们需要引入的核心包为:slf4j-api-1.6.4.jar。如果不...原创 2018-10-11 13:08:31 · 12352 阅读 · 0 评论 -
开发中list常用转换
org.apache.commons.lang3.StringUtils.join(applyNameList, “,”);原创 2019-08-27 09:38:33 · 1070 阅读 · 0 评论 -
#{}与${}的区别
默认情况下,使用#{}语法,但是在order by 、表名、列名时不能用#{},因为它会自动加上 引号,这时可以用${},但是要防止注入。MyBatis会产生PreparedStatement语句中,并且安全的设置PreparedStatement参数,这个过程中MyBatis会进行必要的安全检查和转义。#相当于对数据加上双引号(占位),它有个预编译的过程,条件对象是什么类型,接收的就是什么类...原创 2019-07-16 14:24:06 · 672 阅读 · 0 评论 -
JDK1.8中的日期处理
在Java 8中如何处理日期和时间示例 1、在Java 8中获取今天的日期示例 2、在Java 8中获取年、月、日信息示例 3、在Java 8中处理特定日期示例 4、在Java 8中判断两个日期是否相等示例 5、在Java 8中检查像生日这种周期性事件示例 6、在Java 8中获取当前时间示例 7、如何在现有的时间上增加小时示例 8、如何计算一周后的日期示例 9、计算一年前或一年...转载 2019-07-04 15:41:14 · 606 阅读 · 0 评论 -
Lambda表达式和函数式接口
函数式接口:就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口(default修饰)。函数式接口可以被隐式转换为 lambda 表达式。Lambda 表达式和方法引用(实际上也可认为是Lambda表达式)上。方法引用:方法引用是Java8 的新特性。我们知道,使用Lambda表达式可以极大地简化我们的代码,但有时候Lambda体中的功能已经有现成的方法实现了,这时...原创 2019-07-03 10:51:20 · 226 阅读 · 0 评论 -
java的list的几种排序写法整理(sort的用法)
<div class="article-copyright"> <svg class="icon" title="CSDN认证原创" aria-hidden="true" style="width:...转载 2019-07-02 10:17:55 · 3828 阅读 · 1 评论 -
@ControllerAdvice和@ExceptionHandler拦截异常并统一处理
@ControllerAdvice和@ExceptionHandler拦截异常并统一处理@ControllerAdvice顾名思义就是controller的增强器,@ControllerAdvice注解将作用在所有注解了@RequestMapping的控制器的方法上。(如果全部异常处理返回json,那么可以使用 @RestControllerAdvice 代替 @ControllerAdvic...原创 2019-05-28 16:44:11 · 1734 阅读 · 0 评论 -
JAVA前端与后端参数传递方法小结
一.Servlet后端传值给前端使用一些Servlet API进行值的存取操作:HttpServletRequest、HttpSession和ServletContext。Struts2对这个三个对象用Map进行了封装,我们就可以使用Map对象来存取数据了。 1)在Action中存值ActionContext actionContext = ActionContext.getC...转载 2019-04-19 14:08:47 · 19251 阅读 · 1 评论 -
定时器quartz的简单使用
定时器quartz顾名思义,定时去执行某工作。就比如给扫地机器人定时去扫地,定时需要人去调度(调度器),人需要去设定扫地的执行的时间即什么时候开始,什么时候结束(触发器),并指定扫地机器人去打扫哪块,即详细的工作(任务)。部署到服务器请参考:https://blog.csdn.net/Andrew_Yuan/article/details/890155481.定时器的几个关键概念:触...原创 2019-04-04 10:38:28 · 516 阅读 · 0 评论 -
Spring配置文件中的一些标签
经常看到resource下面有多个关于spring的配置文件,其实是多个 Spring 配置文件通过 import 方式整合的。import标签:配置文件会先合并,后解析,也就是说,无论是命名空间还是配置的内容,都会合并处理。 因为多个 Spring 配置文件最终会合并到一起(形成一个 ApplicationContext),因此这些配置中的 bean 都是可以互相引用的。Bea...原创 2019-03-21 15:28:57 · 925 阅读 · 0 评论 -
RestController和Controller的区别
知识点:@RestController注解相当于@ResponseBody + @Controller合在一起的作用。1) 如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。2) 如果需要...转载 2018-11-01 11:00:42 · 1123 阅读 · 0 评论 -
计算一个日期到今天相差的天数
Date enrollDate = inter.getEnrollDate(); //可以自己创个时间节点Date today = new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");if (enrollDate != null) { String end = sdf.format(enr...原创 2018-10-25 14:11:01 · 4883 阅读 · 0 评论 -
IntelliJ IDEA代码常用的快捷键
IntelliJ IDEA代码常用的快捷键有: Alt+回车 导入包,自动修正 Ctrl+F 查找文本,调出搜索框Ctrl+N 查找类 Ctrl+Shift+N 查找文件 Ctrl+Alt+L 格式化代码 Ctrl+Alt+O 优化导入的类和包 Alt+Insert 生成代码(如get,set方法,构造函数等) Ctrl+E或者Alt+Shift+C 最...原创 2018-10-16 14:43:34 · 280 阅读 · 0 评论 -
VO、DTO、POJO、PO的区别
VO即value object值对象。主要体现在视图的对象,对于一个WEB页面将整个页面的属性封装成一个对象。然后用一个VO对象在控制层与视图层进行传输交换。DTO经过处理后的PO,可能增加或者减少PO的属性:Data Transfer Object数据传输对象主要用于远程调用等需要大量传输对象的地方。比如我们一张表有100个字段,那么对应的PO就有100个属性。但是我们界面...原创 2018-10-16 14:26:52 · 783 阅读 · 0 评论 -
常用注解的作用及使用方法
JPA通过注解或xml描述对象的方法将运行期的实体类持久化到数据库Jpa是一种规范,而Hibernate是它的一种实现 ;JPA是开源API,如Hiberate就是JPA产品JPA展示如何将Plain Oriented Java Object(POJO)定义为entity,以及如何管理entity之间的关系。 常用注解:@RequestMapping注解 :是一个用来处理请求地...原创 2018-10-12 17:34:28 · 1128 阅读 · 0 评论 -
idea强制关闭后,重启后启动tomcat提醒端口1099被占用
第一种方法:找到占用该端口的进程,然后杀死:1. cmd --->>>> netstat -aon|findstr 10992.taskkill -f -pid 5608 第二种方法:点击idea左下角的骷颅头...原创 2018-10-12 16:27:24 · 2573 阅读 · 0 评论 -
NIO学习教程
文件传输传统的IO通信:磁盘→系统→程序→socket→协议引擎NIO:磁盘→系统→socket→协议引擎NIO注意几个关键词:Java NIO: Channels and Buffers(通道和缓冲区)、Non-blocking IO(非阻塞IO)、Selectors(选择器)。标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(Buffer)进行操作,数据总是...转载 2018-05-07 16:16:57 · 3200 阅读 · 2 评论 -
JAVA JVM
1.jconsole是一种集成了上面所有命令功能的可视化工具,可以分析jvm的内存使用情况和线程等信息。 通过JDK/bin目录下的“jconsole.exe”启动Jconsole后,将自动搜索出本机运行的所有JVM进程,不需要用户使用jps来查询 了,双击其中一个进程即可开始监控。也可以“远程连接服务器,进行远程虚拟机的监控。”插件中,Visual GC(可视化GC)还是比较好用的,可视...原创 2018-04-28 10:32:27 · 132 阅读 · 0 评论 -
InputStream和FileInputStream
传统的IO通信:磁盘→系统→程序→socket→协议引擎NIO:磁盘→系统→socket→协议引擎字节流:字节流读取得都是文件中二进制数据,读取到二进制数据不会经过任何的处理。 字符流:字符流读取的数据是以字符为单位的 ,字符流也是读取文件中的二进制数据,不过会把这些二进制数据转换成我们能识别的字符。 字符流 = 字节流 + 解码输入字节流: ——–| InputStream 所有输入字节流的基类...原创 2018-05-06 15:08:56 · 5215 阅读 · 0 评论 -
java Comparable 和Comparator区别
java中,对集合对象或者数组对象排序,有两种实现方式。即:(1)对象实现Comparable 接口 (2)定义比较器,实现Comparator接口。下面会简要介绍这两种方法的区别,并附上实现代码,供大家参考。Comparable介绍Comparable是在集合内部定义的方法实现的排序,位于java.lang下。Compara...转载 2018-04-27 12:43:05 · 117 阅读 · 0 评论 -
netty入门
Netty是一款用于创建高性能网络应用程序的高级框架。在第1章中,我们将首先小结Java网络编程的演化过程。在我们回顾了异步通信和事件驱动的处理的基本概念之后,我们将首先看一看Netty的核心组件。在第2章中,你将能够构建自己的第一款基于Netty的应用程序!在第3章中,你将开启对于Netty的细致探究之旅,从它的核心网络协议(第4章)以及数据处理层(第5章和第6章)到它的并发模型(第7章)。我们...转载 2018-05-09 15:56:13 · 174 阅读 · 0 评论 -
数组与集合
A.长度区别 数组长度固定 集合长度可变 B.内容不同 数组存储的是同一种类型数据 集合存储的可以是不同类型数据 C.元素的数据类型问题 数组可以存储基本数据类型,也可以存储引用数据类型 集合只能装引用数据类型数据结构:数据的存储方式 Collection接口,List与Set是其子接口,我们可直接用List与Set的实现类...原创 2018-04-10 15:40:40 · 146 阅读 · 0 评论