java
奔跑的阳光
这个作者很懒,什么都没留下…
展开
-
java 计算百分比四舍五入
计算百分比四舍五入原创 2022-08-15 17:27:35 · 1425 阅读 · 1 评论 -
mybatis踩坑日记-数字类型判断为空问题
mybatis中的if标签判断,如果传的是数字类型0,mybatis会把它转为''空串。<if test="status != null "> and t.status = #{status}</if>这样可以解决问题。但是,如果用@RequestParam Map<String, Object> params来接收前端参数的话,虽然前端像下图这样传,但是,map接收后会自动赋值为""所以,还是会有问题。两个解决办法,一是类型定义.原创 2021-05-27 11:05:46 · 1254 阅读 · 0 评论 -
mybatis plus解决多对多分页总条数不对的问题
由于一对多或者多对多的情况,分页条数出现统计错误。解决办法是加上select标签,先做子查询。例如A B C 三张表,A和C都是主体,B表作为中间表关联AC的多对多关系。下图中t是A表,t2是B表,t1是C表。直接请求queryByMap接口,返回的数据就对了。...原创 2021-01-22 16:44:52 · 4829 阅读 · 3 评论 -
springboot动态cron定时任务
实现动态修改cron表达式来更改定时任务的规则,程序不重启,且使用定时任务线程池加快效率。一、配置类@Configuration@EnableAsync@EnableScheduling@Slf4jpublic class SchedulerThreadPoolConfig implements SchedulingConfigurer, AsyncConfigurer { /** * 定时任务使用的线程池 * @return */ @Bean原创 2020-07-13 17:23:32 · 1482 阅读 · 0 评论 -
Java并发编程:Lock
在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。 也许有朋友会问,既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock?这个问题将在下面进行阐述。本文先从synchronized的缺陷讲起,然后再讲述java.util.concurrent.locks包下常用的有哪些类和接口,最后讨论转载 2020-07-10 17:50:54 · 182 阅读 · 0 评论 -
java 获取本机ip地址
获取本机真实ip地址,非127.0.0.1 非169.254链路本地地址。原文地址:https://blog.csdn.net/yu532164710/article/details/80118118详解说明:https://cloud.tencent.com/developer/article/1610919 public static String getLocalAddress(){ String ip = ""; try { En转载 2020-07-08 10:54:27 · 632 阅读 · 1 评论 -
Java生成随机数,指定范围,指定小数点位数
import java.math.BigDecimal; public class RandomTest { /** * @param args */ public static void main(String[] args) { float Max = 180, Min = 60; fo...原创 2019-11-16 11:33:40 · 4978 阅读 · 1 评论 -
collection.toArray(new String[0])中new String[0]的作用
new string[0]的作用比如:String[] result = set.toArray(new String[0]);Collection的公有方法中,toArray()是比较重要的一个。但是使用无参数的toArray()有一个缺点,就是转换后的数组类型是Object[]。 虽然Object数组也不是不能用,但当你真的想用一个具体类型的数组,比如String[]时,问题就...转载 2019-10-23 10:37:06 · 158 阅读 · 0 评论 -
springboot+mybatis+mysql 存储单字段为数组格式的解决方案
1.使用场景需求为:前端传的某个字段为数组类型,但mysql中不支持直接存储数组,只能转为字符串存储,取出时又得转回数组,这样无论是在前端转换还是后端转换都是费时费力的。这样,我们可以利用mybatis的BaseTypeHandler类帮我们完成自动转换。第一步:将对象里的字段改为JSONArray类型。第二步:继承BaseTypeHandler并重写里面的某些方法。...原创 2019-08-28 13:48:12 · 8666 阅读 · 2 评论 -
springboot 利用aop实现系统日志和操作日志记录
1.目的通过aop及注解的方式,记录异常信息和特定的操作日志到数据库。2.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</arti...原创 2019-08-16 11:32:05 · 2984 阅读 · 2 评论 -
java 导出Excel
1.介绍导出是用的poi,poi版本3.11,网上用的较多的是poi的HSSF的API,对比了一下发现,HSSF主要针对2007年以前的excel版本,XSSF主要针对2007年及以上版本。官方主页http://poi.apache.org/index.html,API文档http://poi.apache.org/apidocs/index.html2.实现步骤:1.打开或新...原创 2019-07-18 17:55:02 · 130 阅读 · 0 评论 -
tomcat上传图片后无法立即下载 缓存问题
接手了一个别人的项目,用的ssh框架,有个地方上传图片后需要立马在页面上回显,以为是代码中异步写图片还没写完就把图片路径返回给前端了,查看了代码发现没问题。接着找Tomcat的问题,发现在Tomcat的context.xml配置文件中,将默认的cachingAllowed="true"改为false就可以了。...原创 2019-07-08 18:04:24 · 473 阅读 · 2 评论 -
Java对象复制非空属性
引用org.springframework.beans.BeanUtils类提供的方法copyProperties(Object source, Object target, String... ignoreProperties) 用于对象拷贝,spring 和 Apache都提供了相应的工具类方法,BeanUtils.copyPropertiespackage com.mixislink...原创 2019-02-25 15:06:15 · 3732 阅读 · 1 评论 -
Mapped Statements collection does not contain value for 解决方法
Mapped Statements collection does not contain value for。先检查以下三个原因:1.mybatis的映射文件的命令空间与接口的全限定名不一致;2有可能mybatis的映射文件名字与接口的类名字不一致;3.还有一种情况就是接口声明的方法在映射文件里面没有。如果排查发现和上面说的一点都不符合。而且是ma原创 2016-12-09 14:42:06 · 20431 阅读 · 1 评论 -
Swagger与SpringMVC整合自动生成api(超详细)
既然是整合Swagger,那么前提是你已经使用SpringMVC搭建了一套接口服务,无论繁简,只要可用就行。关于接口文档生成工具,大家在网上搜索的时候,可能会发现另外一个工具:springfox或者spring boot。网上关于springfox和spring整合的文章也非常多的呀。那springfox和swagger是什么关系呢?引用springfox官方的语录原创 2016-12-15 17:11:22 · 2623 阅读 · 2 评论 -
java List与数组之间的互转
1 数组转换为List调用Arrays类的静态方法asList。asListpublic static List asList(T... a)Returns a fixed-size list backed by the specified array. (Changes to the returned list "write through" to the arra转载 2017-05-02 17:38:25 · 346 阅读 · 0 评论 -
Java 数组快速合并
/** * * @param data1 * @param data2 * @return data1 与 data2拼接的结果 */ public static byte[] addBytes(byte[] data1, byte[] data2) { byte[] data3 = new byte[data1.length + data2.length];原创 2017-05-04 12:12:14 · 2215 阅读 · 0 评论 -
java NIO 服务器与多客户端双向通信 非阻塞
服务端代码:import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.SelectionKe原创 2017-05-25 20:13:50 · 1703 阅读 · 0 评论 -
java线程之yield(),sleep(),wait()区别详解
1、sleep()使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据。注意该方法要捕捉异常。例如有两个线程同时执行(没有synchronized)一个线程优先级为MAX_PRIORITY,另一个为MIN_PRIORITY,如果没有Sleep()方法,只有高优先级的转载 2017-05-10 15:29:31 · 247 阅读 · 0 评论 -
Java中遍历Map对象的4种方法
在Java中如何遍历Map对象How to Iterate Over a Map in Java在java中遍历Map有不少的方法。我们看一下最常用的方法及其优缺点。既然java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHashMap, Hashtable, 等等) 方法一 在for-each循环中使用ent转载 2017-05-10 16:04:35 · 272 阅读 · 0 评论 -
java生成word和pdf的几种方法的优缺点对比
JAVA生成word优缺点对比所用技术优点缺点Jacob功能强大代码量大,设置样式繁琐;需要windows平台支持,无法跨平台Apache POI读写excel功能强大、操作简单一般只用它读取word,能够创建简单的word,不能设转载 2017-05-22 17:10:59 · 7351 阅读 · 1 评论 -
原码反码补码的详解以及java中>>和>>>的区别
一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1.比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011。如果是 -3 ,就是 10000011 。那么,这里的转载 2017-08-21 20:08:10 · 374 阅读 · 0 评论 -
对map集合进行排序
一、简单介绍Map 在讲解Map排序之前,我们先来稍微了解下map。map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。其中这四者的区别如下(简单介绍): HashMap:我们最常用的Map,它根据key的HashCode 值来存储数据,根据key可以直接获取它的Value,同时它具有很快转载 2017-10-26 12:18:20 · 346 阅读 · 0 评论 -
Mybatis jdbcType的用法
今天看了点ibatis的jdbcType的使用,虽然以前看见文档上有这么个东西,但是还真没用过。 首先看下官方user-guide的说法:jdbcType 用法" alt="ibatis jdbcType 用法" src="http://s15.sinaimg.cn/middle/7d31bbeeta2fc96bc21de&690">这里面说到了jdbcType的使用场合转载 2016-12-09 10:06:30 · 1271 阅读 · 0 评论