Java
文章平均质量分 61
java基础
小徐也要努力鸭
逝者如斯夫,不舍昼夜!!!
展开
-
java:EasyExcel使用(一)读excel
EasyExcel相比于传统使用poi进行excel文件读写,编程使用操作上更加方便快捷,且对于内存溢出进行了优化处理。本文是EasyExcel读excel操作。原创 2024-05-01 17:58:41 · 1953 阅读 · 1 评论 -
java:Druid工具类解析sql获取表名
alibaba的druid连接池除了sql执行的功能外,还有sql语法解析的工具提供,可据此自定义实现sql语句表名的替换功能。原创 2024-03-12 18:22:01 · 1565 阅读 · 0 评论 -
java:java.util.StringTokenizer实现字符串切割
java.util工具包提供了字符串切割的工具类StringTokenizer,Spring等常见框架的字符串工具类(如Spring的StringUtils),常见此类使用。原创 2023-10-18 15:48:37 · 543 阅读 · 0 评论 -
java:JDBC ResultSet结合Spring的TransactionTemplate事务模板的查询方式
一般业务开发中,数据库查询使用mybatis框架居多。mybatis底层将结果赋予到实体类,使用的是反射方式(如org.apache.ibatis.reflection.Reflector类等逻辑),常和Spring的编程式事务TransactionTemplate一同使用。当然,Spring的TransactionTemplate也可以和JDBC的ResultSet联合使用,这里采用根据Spring asm所创的工具类,来将数据库查询结果赋予到实体类(和mybatis底层使用反射有所区别,反射调用实体原创 2023-10-08 15:47:14 · 525 阅读 · 0 评论 -
java:AutoCloseable接口使用
AutoCloseable接口,在try-with-resources代码块退出时,会自动调用接口的close方法,避免资源耗尽的异常等情况。原创 2023-04-17 13:57:21 · 546 阅读 · 1 评论 -
java:new ArrayList<String>(){{add(“xxx“);}}
HashMap和ArrayList等常见双花括号的写法,本质是匿名内部类 + 实例代码块(即构造代码块)的写法。原创 2023-04-13 14:03:38 · 989 阅读 · 0 评论 -
java:反射获取Package下接口的全部实现类
java:反射获取Package下接口的全部实现类。原创 2023-04-12 12:59:39 · 474 阅读 · 0 评论 -
java:非静态内部类中的Filed:this$0
通过反射方法getDeclaredFields()获取类Class的全部字段时,会发现内部类(非静态)的字段中,存在父类的实例字段,修饰为final,属性名为this$0。若此非静态内部类需要调用父类的实例方法,那么使用parent class.this即可。原创 2023-04-10 13:44:23 · 335 阅读 · 0 评论 -
java:接口请求重试
接口请求重试的思路,采用循环 + try \ catch的方式,若接口请求失败或超时,则根据设置的重试次数再次发起请求重试。原创 2023-03-25 16:51:20 · 2527 阅读 · 0 评论 -
java:下划线转小驼峰
【代码】java:下划线转小驼峰。原创 2023-03-25 16:01:07 · 2426 阅读 · 0 评论 -
java:通过反射将ResultSet查询结果赋予实体类
通过java反射,将ResultSet获取结果,通过调用setter方法为实体类赋值,使用方法如下可示。原创 2023-03-19 22:54:07 · 696 阅读 · 0 评论 -
java:驼峰转下划线
实体类属性,一般命名规范为小驼峰格式,将属性名转数据库字段下划线样式,工具方法如下。原创 2023-03-11 13:34:10 · 2640 阅读 · 0 评论 -
java:Class的isPrimitive方法使用
java中Class类的isPrimitive方法,用于检查类型是否为基本类型。java虚拟机创建了int、byte、short、long、float、double、boolean、char这8种基础信息,以及void,一共9种。为这9种类型时,isPrimitive方法将返回true,反之返回false。原创 2023-03-01 19:02:58 · 490 阅读 · 0 评论 -
java:isAssignableFrom方法使用及instanceof对比
Class类的方法isAssignableFrom,常见于源码中判断父子类关系时使用。X.class.isAssignableFrom(Y.class),表示判断Y是否为X的子类(或Y接口(类)是否继承(实现)了X接口),均适用于类或接口中,且X.class.isAssignableFrom(X.class)仍返回true。isAssignableFrom为native方法,底层使用C/C++实现。instanceof为java中判断实例对象是否为某个类的类型的关键字,同常见于框架源码中使用。原创 2023-02-28 13:49:41 · 874 阅读 · 1 评论 -
java:根据日期期间获取连续日期
给定起始、终止的日期,通过java实现获取连续的日期字符串,可通过c.add(Calendar.DATE, 1)循环获取结果。原创 2023-02-22 16:30:05 · 1065 阅读 · 0 评论 -
java:将一个正整数拆分为n个非负数之和
1 前言将一个正整数拆分为n个两数之差,即可获取到结果,公式如下:2 使用java实现逻辑:执行效果如下(拆分的数中,可能存在为0的场景)原创 2023-01-29 13:33:37 · 632 阅读 · 0 评论 -
java:jackson 五:Custom Jackson Annotation
jackson自定义注解使用(包含自定义jackson的序列化器和反序列化器方式)原创 2022-12-30 16:40:52 · 241 阅读 · 0 评论 -
java:jackson 四:Jackson Property Inclusion Annotations
1 前言参考文档地址:SpringBoot自带的jackson版本如下:或者不使用SpringBoot情况下,单独配置jackson-databind版本:同时使用SpringBoot和自定义的jackson版本时,注意避免依赖冲突。2 使用2.1 @JsonIgnoreProperties@JsonIgnoreProperties is a class-level annotation that marks a property or a list of properties that Jackso原创 2022-12-29 18:33:56 · 235 阅读 · 0 评论 -
java:jackson 三:Jackson – Custom Serializer
1 前言jackson支持自定义序列化器,参考文档地址如下:依赖如下(这里使用jackson-databind的2.14.1版本):2 使用2.1 Standard Serialization of an Object GraphThis will result in a full JSON representation for both entities:执行结果:2.2 Custom Serializer on the ObjectMapper执行结果:2.3 Custom Serializ原创 2022-12-26 13:59:13 · 648 阅读 · 0 评论 -
java:反射封装Slf4j日志工具类
使用Slf4j时,针对日志打印进行工具类封装使用(java反射封装日志工具类)。原创 2022-12-25 13:29:09 · 1365 阅读 · 1 评论 -
java:jackson 二:Custom Deserialization in Jackson
1 前言jackson支持自定义反序列化器,参考文档地址如下:依赖如下(这里使用jackson-databind的2.14.1版本):2 使用2.1 Standard DeserializationLet’s start by defining two entities and see how Jackson will deserialize a JSON representation to these entities without any customization原创 2022-12-23 18:41:52 · 856 阅读 · 0 评论 -
java:@SuppressWarnings可使用value列表
@SuppressWarnings可使用value列表The list of tokens that can be used inside a SuppressWarnings annotation is:all to suppress all warningsboxing to suppress warnings relative to boxing/unboxing operationscast to suppress warnings relative to cast operations原创 2022-12-23 17:56:01 · 146 阅读 · 0 评论 -
java:AES的加密模式和填充模式
块加密,常用的加密模式有ECB、CBC。ECB,即electronic code book,将整个明文分成若干段相同小段,然后每小段进行加密,每段互不依赖,可以并行处理,同样的明文就会生成同样的密文;CBC,即cipher block chaining,密文分组链模式,密文分组间如同链条相互连接,先将明文切割为若干段,每一小段与上一段的密文段运算后(第一个块没有上个密文段,故而使用IV进行运算),再同秘钥进行加密,因为是串行处理,所以同样明文每次生成的密文不一样。原创 2022-12-18 19:19:09 · 3533 阅读 · 0 评论 -
java:AES加密和解密
对称加密,即单秘钥加密,指加密和解密的过程中,使用相同的秘钥,相比于非对称加密,因仅有一把钥匙,故而速度更快,更适合解密大文件(常见于如视频文件的加密解密中)。AES算法就属于对称加密中的一种。原创 2022-12-17 17:06:26 · 6647 阅读 · 0 评论 -
java:工厂模式+策略模式+单例模式优化if-else
Spring的Bean管理中,xml里默认为单例模式管理Bean,加之工厂模式和策略模式,可达到减少if-else的效果。原创 2022-12-11 14:20:19 · 440 阅读 · 0 评论 -
java:SimpleDateFormat线程不安全解决方式
SimpleDateFormat定义为static时,多线程环境下共用此对象是线程不安全的。如下采用双重检测锁,为每个线程单独创建SimpleDateFormat对象,即可避免此问题。原创 2022-11-22 13:57:38 · 472 阅读 · 0 评论 -
java:重新导入依赖maven
pom文件修改没有触发自动重写载入,需要手动更新下pom文件(避免代码飘红)原创 2022-11-15 20:44:44 · 7865 阅读 · 0 评论 -
java:反射工具类去除DTO的String变量前后空格
前端表单提交没有处理输入字符的前后空格时,如table查询功能,查询者可能也不易发现,直接使用可能导致数据查询不出来等问题(非like模糊查询时,如精确查询,常出现此类问题)。解决方式除了前端自行处理前后空格,禁用输入框的空格输入等操作外,后端亦可做移除String成员变量前后空格的兜底操作。原创 2022-10-09 10:51:16 · 628 阅读 · 0 评论 -
mapstruct 空指针异常
在使用MapStruct,idea2020.3版本在build项目的时候出现错误:java: Internal error in the mapping processor: java.lang.NullPointerException。原创 2022-09-27 17:43:37 · 1120 阅读 · 0 评论 -
java:获取两个日期相隔天数
java:获取两个日期相隔天数。原创 2022-09-26 15:37:45 · 2313 阅读 · 0 评论 -
java:jvm参数设置
jvm参数设置后,可通过System.getProperties()或者System.getProperty(“jdbc.drivers”)来获取特定的jvm参数。原创 2022-09-03 21:47:51 · 2400 阅读 · 0 评论 -
java:SPI使用
SPI,即Service Provider Interface。面向的对象的设计里,一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。一旦代码里涉及具体的实现类,就违反了可拔插的原则,如果需要替换一种实现,就需要修改代码。为了实现在模块装配的时候能不在程序里动态指明,这就需要一种服务发现机制。Java SPI 就是提供这样的一个机制:为某接口(interface)寻找服务实现(impl)的机制。原创 2022-09-03 10:42:03 · 834 阅读 · 0 评论 -
java:${}的模板字符串替换
模板字符串中经常使用${变量名}来进行字符串的变量替换,可使用commons-text库中的工具方式实现该功能。依赖配置如下原创 2022-08-08 18:29:55 · 8093 阅读 · 0 评论 -
java:判断字符串是否为数字
代码】java:判断字符串是否为数字。原创 2022-08-03 11:48:43 · 568 阅读 · 0 评论 -
java:@Repeatable注解使用
java:@Repeatable注解使用1 前言java8新增了注解@Repeatable,在hibernate-validator的源码注解如@MAX、@NotNull等中,有@Repeatable注解的使用,源码示例如下:/* * Jakarta Bean Validation API * * License: Apache License, Version 2.0 * See the license.txt file in the root directory or <http:/原创 2022-05-17 18:58:54 · 2356 阅读 · 2 评论 -
java:excel文件读写四、XSSF and SAX (Event API)
java:excel文件读写三、poi1 依赖配置<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.4</version></parent><dependencies> &l原创 2022-04-24 14:29:41 · 1084 阅读 · 0 评论 -
java:excel文件读写三、poi读、写xls和xlsx
java:excel文件读写三、poi读、写xls和xlsx1 依赖配置<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.4</version></parent><dependencies&原创 2022-04-15 14:21:48 · 917 阅读 · 0 评论 -
java:PropertyDescriptor+反射调用setter方法
java:PropertyDescriptor+反射调用setter方法1 前言PropertyDescriptor文档如下:https://docs.oracle.com/javase/7/docs/api/java/beans/PropertyDescriptor.html参考文档的构造方法细节:public PropertyDescriptor(String propertyName, Class<?> beanClass)原创 2022-03-24 14:03:22 · 698 阅读 · 0 评论 -
java:excel文件读写二、poi写xls和xlsx
java:excel文件读写二、poi实践1.前言apache poi官网:https://poi.apache.org/在讲解组件api时,提到了EXCEL(HSSF,XSSF)中,如何同时兼容写入xls和xlsx文件的使用,地址如下:https://poi.apache.org/components/spreadsheet/converting.html官方指明更新到poi的3.5版本,可以用一种兼容的方式操作xls和xlsx,依赖配置如下:<!-- xls -->&l原创 2022-03-16 14:00:49 · 2326 阅读 · 0 评论 -
java:excel文件读写一、poi初识
java:文件读写-poi学习1 简介1.由apache公司提供2.java编写的免费开源的跨平台java api3.Microsoft Office格式档案读和写的功能优劣势:Jxl消耗小,图片和图形支持有限;Poi:功能更加完善。2 Poi包结构HSSF:读写Microsoft Excel xlsXSSF:读写Microsoft Excel OOXML xlsxHWPF:读写Microsoft Word docHSLF:提供读写Microsoft PowerPoint3 依赖配置原创 2022-03-16 13:59:39 · 207 阅读 · 0 评论