
java常用知识总结
总结工作中经常会用到的Java实现
未来@音律
爱睡觉,爱美食,喜欢奇思妙想;
展开
-
解决mysql驱动连接MariaDB,rs.next()游标报错java.sql.SQLException: The statement (1) has no open cursor
在使用MySQL驱动连接MariaDB时,可能会遇到rs.next()游标报错“The statement (1) has no open cursor”的问题。这通常是由于MariaDB的JDBC驱动默认使用流式结果集(StreamingResultSet),并且在执行子查询时可能会提前关闭内部查询的游标。为了解决这个问题,可以通过调整PreparedStatement的创建方式,针对MySQL数据库设置ResultSet.TYPE_FORWARD_ONLY和ResultSet.CONCUR_READ_O原创 2025-05-16 16:53:41 · 155 阅读 · 0 评论 -
通过nginx配置解决跨源资源共享(CORS)漏洞
跨源资源共享(CORS)是一种机制,允许不同源之间的Web资源相互交互。在CORS不安全配置漏洞中,Web应用的服务器被误配置为允许来自任何来源的请求访问资源,或者错误地暴露敏感数据给不受信任的外部源。原创 2025-02-07 15:16:22 · 788 阅读 · 0 评论 -
xxl-job使用nginx代理https后,访问出现403异常问题解决
xxl-job使用nginx代理https后,访问出现403异常问题解决原创 2025-02-06 14:13:55 · 617 阅读 · 0 评论 -
spring boot解决swagger中的v2/api-docs泄露漏洞
spring boot解决swagger中的v2/api-docs泄露漏洞原创 2025-01-07 16:34:40 · 977 阅读 · 0 评论 -
Spring Boot Actuator未授权访问漏洞处理
【代码】Spring Boot Actuator未授权访问漏洞处理。原创 2024-12-02 10:43:36 · 3926 阅读 · 3 评论 -
@Log4j注解启动报错java: 找不到符号 符号: 变量 log
java: 找不到符号 符号: 变量 log原创 2024-02-20 16:27:40 · 387 阅读 · 0 评论 -
@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss“)查询时间与数据库中不一致问题
JsonFormat默认情况下timeZone为GMT(即标准时区),而北京是在东八区,所以会造成差8小时.private Date crtDate;原创 2023-10-12 10:16:35 · 987 阅读 · 0 评论 -
Java获取当前时间或指定时间的上月当天及去年当月
Java获取当前时间或指定时间的上月当天。原创 2023-03-27 11:20:48 · 2276 阅读 · 1 评论 -
java获取倒退n个月的年月,且获取期间所有的年月列表
【代码】java获取倒退n个月的年月,且获取期间所有的年月列表。原创 2022-11-04 15:34:12 · 383 阅读 · 0 评论 -
spring cloud解决双重跨域报错The ‘Access-Control-Allow-Origin‘ header contains multiple values , but only one
这是因为Vue的后端gateway做了一次跨域设置,而vue的前端又向其他的后台服务也发请求,如果其他的后端服务如果也做了跨域设置就会导致重复跨域问题。原创 2022-08-03 15:12:02 · 1044 阅读 · 0 评论 -
cxf框架版本从2.6.16升级到3.5.3报错处理
最近将cxf框架版本从2.6.16升级到3.5.3之后,由于是将cxf中的所有lib包一次性导入的,结果出现了以下报错:java.lang.IllegalArgumentException: prefix wsdp is not bound to a namespace解决办法:将以下jar包删除cxf-services-ws-discovery-api-3.5.3.jarcxf-services-ws-discovery-service-3.5.3.jarcxf-services-wsn-api-3.5.原创 2022-07-01 16:36:12 · 1122 阅读 · 0 评论 -
eclipse新建maven工程报错
今天在新建一个maven工程的时候报错如下:Could not resolve archetype org.apache.maven.archetypes:maven-archetype-quickstart:1.1 解决办法如下:1.下载 maven-archetype-quickstart-1.1.jarhttps://download.youkuaiyun.com/download/qq_37050372/85722506 包2.解压后在jar包所在的目录cmd执行以下命令mvn install:install-原创 2022-06-21 14:18:23 · 616 阅读 · 5 评论 -
java获取Hive表备注
先通过describe extended 表名的方式获取结果: 再找到 Detailed Table Information这一列的结果内容,再使用正则匹配到表备注。原创 2022-06-06 14:10:02 · 925 阅读 · 0 评论 -
HttpClient工具类(支持多线程高并发)
今天在使用HttpClient的时候由于使用了多线程,所以出现了如下报错:I/O exception (java.net.BindException) caught when processing request to于是最后改用连接池来创建httpClient 解决了这个问题,避免资源一直占用不释放的问题。下面贴出两个工具类的代码供大家比较:改造前的代码:import java.io.IOException;import java.net.URI;import java.util原创 2022-05-20 14:38:23 · 2377 阅读 · 0 评论 -
java将秒转换为天,时,分
import java.math.BigDecimal;import java.text.DecimalFormat;public class beautifyTimeUtil { public static String beautifyTime(double second) { if (second <= 0) return "0"; final String[] units = new String[]{"秒", "分钟", "小时"}; int digitGrou.原创 2022-04-15 17:51:55 · 4676 阅读 · 0 评论 -
springboot解决目标URL存在http host头攻击漏洞
1.增加过滤器类进行host白名单过滤package com.dg.sys.filter;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Configuration;import org.springframework.core.annotation.Order;import org.springframework.stereotyp原创 2022-03-28 11:48:27 · 12401 阅读 · 14 评论 -
java获取两个日期之间的天数
public static double getDays(Date before, Date after) { long beforeTime = before.getTime(); long afterTime = after.getTime(); return (afterTime - beforeTime) / (1000 * 60 * 60 * 24); }原创 2022-02-25 13:41:29 · 6733 阅读 · 0 评论 -
java将List中对象中的时间戳全转换为正常显示
/** * 注册json日期转换方法 * @return */ public JsonConfig registerJsonTimestampProcessor(){ JsonConfig config = new JsonConfig(); config.registerJsonValueProcessor(Date.class,new TimestampJsonValueProcessor("yyyy-MM-dd HH:mm:ss")); config.registerJso.原创 2022-02-24 14:42:53 · 743 阅读 · 0 评论 -
Java实现Map转List
Collection<String> valueCollection = map.values(); List<String> valueList = new ArrayList<String>(valueCollection);原创 2022-02-23 14:11:36 · 1859 阅读 · 0 评论 -
java统计程序执行时间
private static String ms2DHMS(long startMs, long endMs) { String retval = null; long secondCount = (endMs - startMs) / 1000; String ms = (endMs - startMs) % 1000 + "ms"; long days = secondCount / (60 * 60 * 24); lo.原创 2022-01-14 15:32:02 · 468 阅读 · 0 评论 -
java将数组切分为指定长度的多个数组
private List<List<String>> splitArr(String[] array, int num) { int count = array.length % num == 0 ? array.length / num : array.length / num + 1; List<List<String>> arrayList = new ArrayList<>(); for(int i=0;i<coun.原创 2021-12-16 16:06:49 · 6261 阅读 · 2 评论 -
Arrays.asList生成的list使用add或者remove报错java.lang.UnsupportedOperationException
报错:解决办法:在外面使用new ArrayList进行包裹String col[] = "table1,table2,table3".split(",");List<String> list = new ArrayList<String>(Arrays.asList(col));list.remove("table3");for (String str : list) { System.out.println(str);}...原创 2021-12-09 11:30:53 · 543 阅读 · 0 评论 -
java根据字节数B转成合适的单位,工具类
public class beautifySizeUtil { public static String beautifySize(double size) { if (size <= 0) return "0"; final String[] units = new String[]{"B", "KB", "MB", "GB", "TB"}; int digitGroups = (int) (Math.log10(size) / Math.log10(1024)); return.原创 2021-10-26 15:00:00 · 640 阅读 · 0 评论 -
java计算两个Date类型的时间相差多少秒
//除以1000是为了转换成秒 double sec = Double.valueOf(end_time.getTime() - start_time.getTime())/1000;原创 2021-09-28 16:01:29 · 4189 阅读 · 0 评论 -
java执行远程执行shell工具类
import com.jcraft.jsch.*;import org.slf4j.Logger;import org.slf4j.LoggerFactory; import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.nio.charset.StandardCharsets;import java.util.Properties; /**.原创 2021-09-18 14:30:28 · 554 阅读 · 0 评论 -
java保留2位小数,不足2位则补0
//保留2位小数double score = new BigDecimal(score).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); //不足两位则补0DecimalFormat decimalFormat = new DecimalFormat("0.00#");String scoreStr = decimalFormat.format(score);原创 2021-09-07 15:28:39 · 9223 阅读 · 1 评论 -
java将字符串List变成用特定字符分割连接的字符串
String join = StringUtils.join(detailList.toArray(), ";");原创 2021-09-07 11:27:54 · 1036 阅读 · 0 评论 -
java保留2位小数
double score = 17.333333333333;NumberFormat nf = NumberFormat.getPercentInstance();nf.setMinimumFractionDigits(2);String formatScore = nf.format(score);System.out.println(formatScore);原创 2021-08-18 15:46:41 · 124 阅读 · 0 评论 -
java实现字符串数组转List且去重
String sql = "123,456,456,678,678";String[] split = sql.split(","); List<String> list = new ArrayList(Arrays.asList(split)); HashSet h = new HashSet(list); list.clear(); list.addAll(h); for (String str : list) { System.o.原创 2021-07-24 12:00:31 · 618 阅读 · 0 评论 -
ORA-00932: 数据类型不一致:应为-,但却获得NCLOB
今天用oracle开发的时候遇到了这个问题,解决方法如下:将报错的NCLOB字段用tochar包裹起来就好了to_char(field)原创 2021-07-21 17:24:44 · 2446 阅读 · 0 评论 -
java实现从Url中识别ip(域名)和端口
URI uri = URI.create("http://marshal01:8088/ws/v1/cluster/apps/application_1625018622200_0017");String host = uri.getHost();int port = uri.getPort();System.out.println(host);System.out.println(port);原创 2021-06-30 21:17:52 · 3473 阅读 · 0 评论 -
java获取两个日期之间的所有日期,获取两个月份之间的所有月份
package com.sitech.bds.dg.dq.util;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.Collections;import java.util.Comparator;import j.原创 2021-04-27 21:07:22 · 2586 阅读 · 0 评论 -
java计算两个时间相差几个月
//计算两个时间相差几个月 public int getMonth(Date start, Date end) { if (start.after(end)) { Date t = start; start = end; end = t; } Calendar startCalendar = Calendar.getInstance(); startCalend.原创 2020-12-23 18:27:00 · 4674 阅读 · 0 评论 -
layui的layui.table.cache只能获取当前页的所有数据问题解决(layui实现添加行操作遇到分页)
今天在使用layui数据表格的时候,我想实现一个添加行的操作,但是要添加行就得先获得当前所有的数据,如果不分页的话layui.table.cache['test'];还可以获取所有的数据,但是如果数据很多需要分页展示的话以上方法就只能获取当前页面的所有数据,此时如果再去添加行就会有问题。经过一番研究我想出了以下办法来解决。 先用最大的数据limit去table.reload,让所有的数据在同一页展示,并获取当前页的所有数据(此时获取的数据就是所有分页的数据)。然后添加行...原创 2020-12-18 16:38:23 · 11568 阅读 · 16 评论 -
layui数据表格表头和行错位问题解决
今天在使用layui的数据表格的时候出现了一个问题,我使用table.render加载完之后出现了表头和数据行错位的现象。如下图所示经过一番研究以后发现通过 table.render加载完数据之后,再使用table.reload进行数据重载可解决错位的问题table.reload('test', { data: data });解决后如下:...原创 2020-12-18 16:22:28 · 7229 阅读 · 6 评论 -
poi 3.11版本导出Excel报表
public void downTemplate(HttpServletRequest request, HttpServletResponse response)throws Exception{ Workbook workbook = new SXSSFWorkbook(1000); //大于1000行时会把之前的行写入硬盘,解决内存溢出 ; //加粗字体 Fon.原创 2020-12-18 16:16:35 · 340 阅读 · 2 评论 -
Address already in use: bind解决办法
原创 2020-12-01 10:45:05 · 1106 阅读 · 0 评论 -
Eclipse运行报错Address already in use: bind
解决办法(假如占用端口为9088):启动cmd, 执行命令netstat -ano|findstr 9088 ,查询出占用端口号的进程号执行命令 taskkill -f -pid 进程号 杀死进程原创 2020-09-28 14:47:43 · 737 阅读 · 0 评论 -
java中读取Oracle clob数据出现的连接关闭问题解决办法
今天在读取一个Oracle的clob字段时出现了一个奇怪的错误:java.sql.SQLException: 关闭的连接 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146) at oracle.jd原创 2020-08-25 20:06:43 · 2783 阅读 · 0 评论 -
@Autowired注入service为null问题解决
今天在一个普通类中注入service时出现了一个问题,我用@Autowired注入的service为null。最终我是通过以下方案解决的。1.在类上标注该类为组件也就是@Component2.静态初始化当前类3.在初始化service的方法上加上注解@PostConstruct,这样方法就会在Bean初始化之后被Spring容器执行4.调用时通过类来调用@Componentpublic class LogUtil { @Autowired private LogSe原创 2020-08-10 14:28:57 · 13261 阅读 · 5 评论