java
文章平均质量分 71
罗小树
这个作者很懒,什么都没留下…
展开
-
mybatis如何向mysql中插入以及从mysql查询日期格式的数据
一、问题说明这个问题其实就涉及下面两种情况java类型转jdbc类型(向数据库插入数据)jdbc类型转java类型(从数据库中查询数据)这里java类型一般Date用的比较多,jdbc类型一般是DATE(时间精确到日,对应mysql的DATE类型)、TIMESTAMP(时间精确到秒,对应mysql的TIMESTAMP/DATETIME类型)jdbc类型并不直接等同于数据库的数据类型(关于jdbc类型和数据库的数据类型之间的关系,参见https://juejin.cn/post/.原创 2021-05-23 11:36:19 · 3585 阅读 · 1 评论 -
pdf生成图片报错:Cannot read JBIG2 image: jbig2-imageio is not installed
一、问题说明报错信息:org.apache.pdfbox.contentstream.PDFStreamEngine.operatorException(PDFStreamEngine.java:917) - Cannot read JBIG2 image: jbig2-imageio is not installed相关环境信息:在调用PDFRenderer的renderImageWithDPI(int pageIndex, float dpi)方法时报错PDFRenderer用的是pdf原创 2021-03-09 19:16:03 · 4105 阅读 · 0 评论 -
java正则表达式替换小记(用到了分组捕获和非贪婪匹配)
一、问题说明这个是同事问的一个使用java正则匹配替换字符串的问题,花了点时间解决。或许会有更好的解决办法,我这里还是采用正则来解决,顺便复习下很久没用过的正则表达式。有一个json字符串如下:{"code":0,"students":{"s001":{"sname":"张三","sage":"10"},"s002":{"sname":"李四","sage":"20"},"s003":{"sname":"王五","sage":"30"}}}细心的人肯定会注意到,上面这个json是有问题的,原创 2020-11-18 21:39:01 · 647 阅读 · 0 评论 -
springmvc的controller中有些代码只在项目启动后接到第一次请求才执行
一、需求说明现在项目中有个页面加载方法,需要在查询操作后执行插入,但是插入数据的部分只会在项目启动后第一次请求才会执行代码如下:@Controllerpublic class VideoController { @RequestMapping("/getVideo/{videoId}") public void getVideo(HttpServletRequest request, HttpServletResponse response, @PathVariable S原创 2020-09-29 14:31:13 · 782 阅读 · 0 评论 -
log4j2日志配置颜色
一、需求说明相关环境说明:maven 3.5.0,jdk1.8maven依赖:<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version></dependency><dependency> <groupId>org.s原创 2020-09-24 14:00:58 · 14249 阅读 · 4 评论 -
java File类中mkdir和mkdirs方法的区别
File类中mkdir和mkdirs这两个方法的区别1. 前提我的电脑D盘存在,但是D盘下没有aaa这个文件夹2. 代码测试import org.junit.Test;import java.io.File;public class FileTest { @Test public void test1() { File file = new File("D:/aaa"); if (!file.exists()) {原创 2020-09-18 10:35:25 · 873 阅读 · 0 评论 -
java核心技术(ed10)阅读笔记
最近在看《java核心技术》第10版,中间遇到一些小问题,在此把问题及解决思路记录下来,方便后续查找1.P61 所属章节:卷2 第2章 输入与输出问题描述:DataIO助手类的readFixedString方法中为什么会有一段 in.skipBytes(2*(size-i)),这个是随便写的吗?解决思路:这里最主要是搞明白Employee这个实体类的各个字段占用的字节数量,理解这个基本就没啥了刚开始不明白,一画图发现很简单...原创 2020-09-17 22:03:34 · 309 阅读 · 0 评论 -
jdk8 Collectors.toMap中的value为null时报NullPointerException
一、问题说明如果Map中有个键值对的value为null,在调用Collectors.toMap时会报NullPointerException代码如下:public static void main(String[] args) { Map<String, String> map = new HashMap<>(); map.put("aaa", "111"); map.put("bbb", "222"); map.put("ccc", null); Map原创 2020-07-01 17:09:27 · 2295 阅读 · 0 评论 -
java 常用正则替换
以下str是原始字符串,resultStr是结果字符串替换空白符Sring resultStr = str.replaceAll("(?m)^\\s*$(\\n|\\r\\n)", ""); // 去掉所有空白行String resultStr = str.replaceAll("[\\s]+", " "); // 将所有空格和空白行替换成一个空格参考链接:https://www.cnblogs.com/interdrp/p/12726553.html...原创 2020-06-10 19:19:53 · 1002 阅读 · 0 评论 -
java 获取倒数第几个字符出现的位置
一、问题说明现在有一个字符串"com.kittycoder.StudentMapper.selectAllStudent"(mybatis中带全路径的sqlId,变量名为str)我现在需要把这个字符串转换成"StudentMapper.selectAllStudent"思路:先找到str的倒数第一个"."的位置(lastIndex),然后再基于倒数第一个"."的位置找到倒数第二个"."的位置(lastSecondIndex),最后截取从索引lastSecondIndex到最后一个字符的部分代原创 2020-06-10 19:11:22 · 8114 阅读 · 0 评论 -
jstl的c:forEach如何遍历常量
之前代码里都是取的变量来进行遍历,最近突发奇想,c:forEach能遍历常量吗?试了下,还真可以以下是两个简单例子:1.使用c:forEach依次打印 1,2,3,...,12<c:forEach begin="1" end="12" var="item"> ${item} </c:forEach>2.遍历数组["aa", "bb", "cc", "dd", "ee"]<c:forEach items="aa,bb,cc,dd,ee" var="kk"&原创 2020-06-05 20:25:00 · 625 阅读 · 0 评论 -
java正则边界匹配
一、需求说明问题说明:下面的需求我原来是用js写的,后面打算在java中写,但是发现不行,现在来解决下需求:有一个字符串"52,3,4",写一个正则表达式,传入2,但是字符串里面只有52,没有匹配的,返回false;传入52,字符串里刚好有52可以匹配,返回true之前使用js来实现:"52,3,4".match(/\b52\b/)!=null; // true,"52,3,4"中能找到52"52,3,4".match(/\b2\b/)!=null; // false,"..原创 2020-06-05 20:03:56 · 711 阅读 · 0 评论 -
lombok里boolean属性生成的getter方法是isXXX,而不是getXXX
一、问题说明:项目里引入的jar包代码,调用了一个对象(类是DefinedSettings)的getCryptEnable()方法,结果报方法找不到@Data@Componentpublic class DefinedSettings { @Value("${hc.security.cryptEnable:true}") private boolean cryptEnabl...原创 2020-01-02 13:51:18 · 6036 阅读 · 0 评论 -
如何在idea中调试可执行jar包
本文整体结构如下:1. 先大致说明下需求:需要在idea中调试可执行jar包的main方法,2. 然后给出解决方法3. 说下我之前用的其他方法4. 说下如何使用java相关的编译命令(javac)、打包命令(jar)生成本文中的可执行jar包一、需求说明如图所示,比如我有一个java项目(ProjectMgmtSystem),目前依赖了一个jar包(mypro.jar)...原创 2019-10-24 23:04:33 · 14553 阅读 · 1 评论 -
struts2 java.io.FileNotFoundException: http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd
xxx-validation.xml 文件中 java.io.FileNotFoundException: http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd错误:这个问题在struts2.3.x中会经常出现,原因就是http://www.opensymphony.com/xwork/xwork-validator-1.0.2....转载 2018-06-05 14:06:26 · 240 阅读 · 0 评论 -
Spring加载bean配置文件的schemas文件(懒加载)
最近在调试Spring源码时,看到加载Spring的xml文件-schema部分,里面使用了懒加载的写法(PluggableSchemaResolver的getSchemaMappings方法)为了能更好理解这个懒加载(里面获取到的Map<String,String>是单例的),我依葫芦画瓢,写了一个简化版的懒汉式单例(采用双重检查锁)。下面是类以及单元测试im...原创 2019-05-31 13:17:17 · 1343 阅读 · 1 评论 -
SimpleDateFormat线程不安全及解决方案
原文链接:https://www.cnblogs.com/yangzhenlong/p/8385061.html我看完后,照着里面的代码敲了一遍,只不过我换成了单元测试。这里记录下线程不安全示例@Testpublic void test1() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")...转载 2019-06-15 15:38:47 · 761 阅读 · 0 评论 -
web项目中在普通类里通过ApplicationContext获取实体bean
以前我写的版本是这样的:public class SpringContext { public static ApplicationContext getContext() { return ContextLoader.getCurrentWebApplicationContext(); } /** * 根据beanId获取javaBea...原创 2019-06-15 16:50:06 · 2103 阅读 · 0 评论 -
使用mockito框架来测试私有方法
这里举一个稍微复杂一点的例子前段时间在看mybatis3.5.1的源码,源码本身所带的单元测试用到了mockito框架一、问题说明我看到MapperMethod类中有个方法叫convertToArray(私有方法),想要断点调试下运行过程,但是我不想改源码;另外我也想顺便多用用mockito框架看到这个方法,1. 我会想到需要传递一个list。这个好办2. 该方法...原创 2019-06-15 17:50:54 · 21052 阅读 · 1 评论 -
Java中如何获得嵌套异常中的真实异常message
一、问题说明1. 不嵌套的情形,比较简单,直接调e.getMessage()就行2. 嵌套的情形,如果用到后台框架的话,抛出的异常可能嵌套不止一层,这个数量没办法确定先从简单的开始,弄嵌套两层的吧二、解决问题通过上面的简单分析,我们可以写一个简单的工具方法,来不断去除嵌套Exception的外层包装,拿到最里面真实的异常信息代码如下:public cla...原创 2019-06-27 08:39:47 · 5480 阅读 · 1 评论 -
Java获取unix时间戳
获取unix时间戳String dateStr = Long.toString(System.currentTimeMillis()/1000L);参考链接:https://zhidao.baidu.com/question/587439825.htmlhttps://blog.csdn.net/YLBF_DEV/article/details/52441545...转载 2019-07-03 15:34:19 · 24828 阅读 · 2 评论 -
【小记】java中Class的一些方法
平时开发中很多Class的方法都用不上,最近在看spring源码的时候,发现里面一些类型转换部分的代码(Converter等)用到很多Class的方法。经过自己尝试使用,这里将用途记录下,方便以后查阅:1. getComponentType获取数组(该class为数组)中实际存放的类型;如果该class不是数组,则直接返回nullSystem.out.println(new int[...原创 2019-07-13 23:15:39 · 298 阅读 · 0 评论 -
java正则分组后逐个替换
一、问题说明有一个模板字符串,"${myTable}===数据测试=====${username}====数据测试=====${Title}"替换规则存放在一个map里,Map<String, String> params = new HashMap<>();params.put("myTable", "aaaTable");params.put("...原创 2019-09-07 23:19:26 · 3188 阅读 · 1 评论 -
Freemarker通过模板字符串或模板文件生成数据
1. 模板字符串@Testpublic void test() throws Exception { Map<String, String> map = new HashMap<String, String>(); map.put("username", "lisi"); String templateString = "欢迎${username}登录!";...原创 2019-09-12 21:54:29 · 2820 阅读 · 0 评论 -
idea配置File and Code Templates
一、需求说明idea版本是2018.1,不同版本之间可能会有差异。这里以后台java代码的注释模板为例(用Class来举例),模板的差异部分在于File Header.java这块场景一:idea里有20个项目,其中10个是自己没事写的小demo,另外10个是公司开发的项目自己写的小demo是一套注释模板,公司开发的项目是一套注释模板场景二:idea里有10个项目,其中8个...原创 2019-09-22 21:41:50 · 11276 阅读 · 0 评论 -
FastJson中如何传递泛型参数以及关于泛型擦除的一点思考
一、问题说明现在需要将json字符串转换成带泛型的javaBean(如:List<Student>,List<String>等)里面的泛型参数不确定,能否将Student、String这些作为参数传到方法里来。换句话说,能否就传递Student.class、String.class,让fastjson把json字符串转换成相应的对象public class...原创 2019-05-18 00:13:33 · 3403 阅读 · 0 评论 -
struts2标签简单循环数字
一、问题说明现在后端传了一个List<Student>(size最多为5),要求前端在table中显示的时候如果不足5个,用空行补全(要求用struts2标签),效果如下图:二、代码实现说明:用struts2标签实现的两个关键点(1)使用<s:iterator>标签中的begin和end属性(2)能够获取到已经遍历过的list的size<...原创 2019-05-26 22:25:59 · 704 阅读 · 0 评论 -
java 根据当前日期获取本周或上周日期区间或最近几周日期区间
最近需要通过java来获取本周或上周,或最近几周(含本周,不含本周)日期区间,参考这篇文章https://blog.csdn.net/orszsxlping/article/details/47402631后,编写了一个工具类import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;...原创 2018-06-18 21:59:24 · 6252 阅读 · 1 评论 -
获取List中存放的最后一个元素
public class ListUtil { /** * 获取list中存放的最后一个元素 * @param list * @param <T> * @return */ public static <T> T getLastElement(List<T> list) { re...原创 2018-06-18 20:39:41 · 106358 阅读 · 4 评论 -
spring-boot配置文件中server.context-path不起作用
原文链接:https://blog.csdn.net/han_ying_ying/article/details/80454176spring-boot配置文件中server.context-path=/XXXXXXX不起作用:原因是更新后写法变成了server.servlet.context-path=/XXXXXX,这样写即可...转载 2018-06-18 13:00:42 · 8410 阅读 · 3 评论 -
将多个Map合并
1.先来一个demopublic static void main(String[] args) { Map<String, String> map1 = new HashMap<String, String>(){{ put("1", "a"); put("2", "b"); put("3", &原创 2018-06-17 22:12:34 · 21717 阅读 · 5 评论 -
Map中根据key批量删除键值对
1.先来一个demo(参考链接:https://blog.csdn.net/wangliqiang1014/article/details/17002723)public static void main(String[] args) { Map<String,String> map = new HashMap<String,String> (); m...原创 2018-06-17 21:55:15 · 17654 阅读 · 0 评论 -
java.sql.SQLException:ORA-01861:文字和格式字符串不匹配
1、错误描述 java.sql.SQLException:ORA-01861:文字和格式字符串不匹配2、错误原因 字段名为statis_date在数据库中存储的数据类型是Date,而在Java中拼接SQL语句时传参数却是字符串类型,类型不匹配,导致出错3、解决办法(1)修改数据库中该字段的数据类型 这种方法不太建议(2)修改拼接时传参数方式,将参数利用to_date...转载 2018-05-21 17:51:29 · 3087 阅读 · 0 评论 -
idea @Override is not allowed when implementing interface method
原文链接:https://blog.csdn.net/shenya2/article/details/50460447近期研究idea,在编码过程发现报错:@Override is not allowed when implementing interface method 。找到一个老外的回答,感觉挺有用的,记录下来,以供参考:1、在project/module上,右键选择菜单“Open Mod...转载 2018-05-01 22:55:22 · 110 阅读 · 0 评论 -
struts2如何遍历List<String>
Java中的Beanpublic class YourFormBean{ private List<String> listOfString; //setter & getters}JSP页面写法一:<s:iterator value="listOfString" status="statusVar"> <tr> &l...原创 2018-04-09 22:50:14 · 884 阅读 · 0 评论 -
[java反射]将对象Object转换为Map
下面运用java反射的知识,写一个工具方法,用来将对象Object转换为Map,转换规则为:Map中的key是原对象的属性名,value是原来对象的属性值import java.lang.reflect.Field;import java.util.HashMap;import java.util.Map;public class MapUtil { /** *...原创 2018-04-14 12:45:52 · 8456 阅读 · 0 评论 -
将java枚举实例序列模拟成Map
现在定义一个java枚举类,里面包含多个枚举实例(类似于Map里的key-value形式)。通过编写自定义方法,将该枚举类中的key-value以List<Map<Integer,String>>的结果返回,还能根据给定的key查到对应的value。代码如下:import java.util.ArrayList;import java.util.HashMap;impo...原创 2018-04-08 20:26:03 · 2717 阅读 · 0 评论 -
转换复杂的JSON对象为Map对象
本文在参考https://www.cnblogs.com/Animation-programmer/p/7997621.html后,在原来代码上做了改动(添加了对内层json的递归解析),写成了工具方法一、问题描述现有如下调用接口返回的json数据,需要将其转换为Map对象,如果json中含有数组,则在对应的Map对象中嵌套ArrayList。解析结果如下图所示:二、代码实现import net....原创 2018-06-18 23:57:59 · 22282 阅读 · 9 评论 -
[java反射]将Map中的属性值转换至对象Object中
转换规则为:Map中的key是新对象的属性名,Map中的value是新对象中的属性值import org.apache.commons.lang3.ArrayUtils;import java.lang.reflect.Field;import java.util.*;public class MapUtil { /** * 将map转换为object,转换全部属性(按照...原创 2018-07-16 21:35:49 · 7073 阅读 · 0 评论 -
java中将html特殊字符作转义和取消转义操作
一、需求说明1.前端传来数据存入数据库,经过后台时要做转义处理在用户填写数据时,有时会传入一些html特殊字符(如:商标符号©等),这时我们需要将前端传来的特殊字符先做转义操作,然后再存入数据库,否则数据库里特殊字符会变成问号,最终无法在页面上正常显示2.从数据库查出数据,传到前端页面显示,经过后台时要做取消转义处理二、代码实现import org.apache.common...原创 2018-07-16 21:57:03 · 10789 阅读 · 0 评论