
java
文章平均质量分 58
mglgls
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SpringBoot2.x下RabbitMQ的并发参数(concurrency和prefetch)
RabbitMQ消费端配置spring: rabbitmq: host: localhost port: 5672 username: guest password: guest listener: simple:# acknowledge-mode: manual # 手动确定(默认自动确认) concurrency: 1 # 消费端的监听个数(即@RabbitListener开启几个线程去处理数据。)转载 2021-08-26 15:12:13 · 4409 阅读 · 1 评论 -
spring 事务-使用@Transactional 注解(事务隔离级别)
先看下@Transactional可以配制那些参数及以其所代表的意义。isolation事务隔离级别,使用时一般如下。@Transactional(isolation=Isolation.DEFAULT)public void method(){}isolation的参数有以下五种:1_1、Isolation.DEFAULT:为数据源的默认隔离级别1_2、isolation=Isolation.READ_UNCOMMITTED:未授权读取级别以操作同一行数据为前提,读.转载 2021-08-26 17:33:45 · 9685 阅读 · 0 评论 -
Mybatis+Mysql无查询数据时List、Set、Map的返回值为null还是空集
Mybatis+Mysql无查询数据时的返回值问题前言最近在写通过mybatis与数据库交互的接口时,需要将数据库返回的结果集执行迭代遍历的操作。代码完成后突然想到,若前端传回数据异常,导致Sql的查询语句在限定条件下无法查到指定的数据,岂不是会在遍历的时候出现空指针异常的隐藏bug?但是这样的情况在测试接口时故意传入无对应数据的限定条件情况下却并未发生,由此引发我的一番猜想:难道mybatis在查不到数据的时候返回的结果并非Null值?原本猜测可能出现空指针异常的代码:图示中我将数据库查询的L转载 2021-07-01 10:37:04 · 3475 阅读 · 0 评论 -
字符串split操作到底有多少坑
长字符串切分,取其中元素封装或者将封装信息组合成长字符串都是常规操作,但是这种长字符串往往是不可控的,如一个长字符串就是由一个元素组成,或者存在空字符串的元素,看似这并没有什么问题,但是使用不同工具类的split方法进行切分结果是完全不同的。不知道你是否遇到这样的坑,下面一起来看看。String类自带的split方法直接使用String本身自带的split方法,看对不同字符串的切分结果。 没有分隔符的字符串 //str = "1"public static void split2(St转载 2021-06-16 16:06:35 · 1236 阅读 · 0 评论 -
特定字符连接的String字符串转换为List<Integer>类型
List<Integer> list = Arrays.asList(ids.split("-")).stream().map(s -> Integer.parseInt(s.trim())).collect(Collectors.toList());转载 2021-06-16 15:52:17 · 888 阅读 · 0 评论 -
将数组转换成集合Arrays.asList,不可进行add和remove操作的原因
直接上代码:import java.util.Arrays;import java.util.List; public class Test { public static void main(String[] args) { Integer a[] = {1,2,5,6,9}; List<Integer> list = Arrays.asList(a); System.out.println(list.size());转载 2021-06-16 15:45:32 · 515 阅读 · 0 评论 -
Java8 将List<Integer> 转换成以逗号分割的String字符串
1、使用谷歌的Joiner(代码超级短)import com.google.common.base.Joiner;import java.util.ArrayList;import java.util.List;public class Convert { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list....转载 2021-06-07 16:25:10 · 3222 阅读 · 0 评论 -
从HttpServletRequest获取POST请求体
getInputStream()、getReader()上面两种方法获取的是Http请求包的包体,因为GET方式请求一般不包含包体.所以上面两种方法一般用于POST请求获取参数.原创 2021-06-02 14:32:34 · 11670 阅读 · 1 评论 -
Java之Request篇
request对象 request对象是来获取请求消息数据 1. 获取请求行数据 GET /test/demo1?name=xiaobai HTTP/1.1 获取请求方式:String getMethod(); GET ***** 获取虚拟目录:stringgetContextPath(); /test 获取Servlet路径:String getServletPath(); /demo1 获取get方式请求参数:S.转载 2021-06-02 11:41:33 · 6713 阅读 · 0 评论 -
json 实体类转换 json list<实体类>转换
json list<实体类>转换 String data = (String) redisUtil.get(key); if (!Objects.isNull(data)) { JSONArray jsonArray = JSONArray.parseArray(data); numRuleList = jsonArray.toJavaList(CssHotelRuleQuantity.class);.原创 2021-06-02 11:18:11 · 300 阅读 · 0 评论 -
Java8 Stream Lambda sorted()之正序倒序
下面代码以自然序排序一个listlist.stream().sorted()转载 2021-06-02 11:03:11 · 3962 阅读 · 0 评论 -
在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解失效的原因和解决方法
在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解是不会生效的。比如,下面代码例子中,有两方法,一个有@Transational注解,一个没有。如果调用了有注解的addPerson()方法,会启动一个Transaction;如果调用updatePersonByPhoneNo(),因为它内部调用了有注解的addPerson(),如果你以为系统也会为它启动一个Transaction,那就错了,实际上是没有的。@Servicepublic class转载 2021-04-22 14:42:23 · 1163 阅读 · 1 评论 -
Java8 让代码更优雅之List排序
工作中,有时会需要对集合内的元素进行排序。利用Java8可以很方便的对List内的元素进行排序操作~基础类型List排序//对数字进行排序List<Integer> nums = Arrays.asList(3,1,5,2,9,8,4,10,6,7);nums.sort(Comparator.reverseOrder()); //reverseOrder倒序System.err.println("倒序:"+nums);nums.sort(Comparator.naturalO转载 2021-04-20 14:26:24 · 733 阅读 · 0 评论 -
线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式
1. 通过Executors创建线程池的弊端在创建线程池的时候,大部分人还是会选择使用Executors去创建。下面是创建定长线程池(FixedThreadPool)的一个例子,严格来说,当使用如下代码创建线程池时,是不符合编程规范的。ExecutorService fixedThreadPool = Executors.newFixedThreadPool(5);原因在于:(摘自阿里编码规约)线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor.转载 2020-11-30 15:50:22 · 2291 阅读 · 1 评论 -
Oracle FIND_IN_SET函数
需求oracle某字段存放的是逗号分隔的id字符串。 现在需要通过id来筛选,且id可以多选 与逻辑。比如:id字符串为1,2,3,4,5 搜索条件为1,3思路mysql 有 find_in_set函数可以满足类似需求,oracle没有这个函数,需要手动创建create or replace function find_in_set(arg1 in varchar2,arg2 in varchar)return number is Result number;begin...原创 2020-08-20 15:35:47 · 3799 阅读 · 0 评论 -
DateUtils,Date,Calendar函数用法详解
DateUtils的函数:/** * 注: * 1.一下大部分(也可能是全部)date都可以换成calendar也就是日历时间 * 2.calendar.get(Calendar.MONTH)获取的月比正常月份少一个月 * 3.calendar.get(Calendar.DAY_OF_WEEK)获取到的指定时间是一周的第几天周日为第一天 * 4.以下注释未必百分之百正确 */ SimpleDateFormat dateFormat = new Simple转载 2020-08-01 17:59:13 · 1171 阅读 · 0 评论 -
java 给定一段时间 按周、月分组
需求网上找了一下 大部分都是用Calendar做的 下方Calendar实现按月分组需要引入包:<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.7</version></dependency>类代码如下:import jav.原创 2020-08-01 13:39:06 · 6055 阅读 · 1 评论 -
关于java HashMap 没有按照添加的顺序显示排序
一般来说HashMap的存取顺序是不一致的,比如说:@Test2public void test(){3 HashMap<String, String>map=new HashMap<String, String>();4 map.put("1", "111");5 map.put("2", "122");6 map.put("3", "133");7 map.put("4", "144");8 map.put("转载 2020-07-31 18:29:25 · 2375 阅读 · 0 评论 -
SessionUtil工具类
package com.cd.utils;/** * session工具类 *@Author zhk *@Date 2018-1-16 **/import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.springframework.web.context.request.RequestContextHolder; import org.spri.转载 2020-07-20 18:01:41 · 1267 阅读 · 1 评论 -
StringRedisTemplate操作redis数据
StringRedisTemplate与RedisTemplate区别点 两者的关系是StringRedisTemplate继承RedisTemplate。 两者的数据是不共通的;也就是说StringRedisTemplate只能管理StringRedisTemplate里面的数据,RedisTemplate只能管理RedisTemplate中的数据。 其实他们两者之间的区别主要在于他们使用的序列化类: RedisTemplate使用的是JdkSerializationRedi转载 2020-07-20 17:58:48 · 354 阅读 · 0 评论 -
登录验证码实现(Captcha)
登录验证码登录验证是一般系统都会有的功能,验证的方式也多种多样,比如输入式验证码,拖动式验证条,拖动式验证拼图等等。我们这里先实现常规的输入验证码的方式,右边显示验证码图片,点击可刷新,左边输入验证码。如下图为实现的效果。实现案例验证码的实现需要前后端协同,脱离彼此则不可用,故将前后端的实现放在一起,不再另写前端教程。后端1.添加依赖打开kitty-admin 工程,添加maven依赖。pom.xml<!-- kaptcha --><depende.转载 2020-07-20 17:42:06 · 14160 阅读 · 1 评论 -
java中字符串,json,Map互相转换(各种转换都有)
前提:使用jar包为fastjsonimport com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;程序如下:Map map = new HashMap(); map.put("AAA", "1"); map.put("BBB", "2"); map.put("CCC", "3"); System.out.println("map=>"+ma...转载 2020-07-17 17:55:54 · 681 阅读 · 0 评论 -
Java实现AD域登录认证
package com.app;import java.util.Hashtable;import javax.naming.AuthenticationException;import javax.naming.Context;import javax.naming.directory.DirContext;import javax.naming.directory.InitialDirContext;public class AdLogin { public static v.转载 2020-07-17 17:53:13 · 4286 阅读 · 1 评论 -
SpringBoot项目中获取spring.profiles.active
在项目开发中,我遇到了这样一个问题,项目做了很多安全校验和认证,这是线上需要的,但是当我在开发中如果想要单独测试某个接口还需要走校验和认证流程就显得非常的麻烦,简单的测试数据根本就无法通过,都会被拦截掉,导致我单独测试这个接口非常的麻烦。所以就有了这么一个需求,在开发环境中不做安全校验和认证,其他环境都是需要的。这里的解决方案就是获取spring.profiles.active值进行判断一下就好了。如何获取?使用下面的工具类就可以了。package com.kuangwan.core.co.转载 2020-07-17 17:51:56 · 6641 阅读 · 1 评论 -
使用各种加密算法 加密后有换行回车的解决办法
据RFC 822规定,每76个字符,还需要加上一个回车换行有时就因为这些换行弄得出了问题,解决办法如下,替换所有换行和回车String bTemp = Base64.encodeBase64String("123".getBytes()); bTemp = bTemp.replaceAll("[\\s*\t\n\r]", "");...转载 2020-07-17 17:50:40 · 3164 阅读 · 0 评论 -
java 代码实现不同格式的post请求
jsonpublic static String sendRequest(String url, Object object) { PrintWriter out = null; BufferedReader in = null; StringBuilder result = new StringBuilder(); try { URL realUrl = new URL(url); //转载 2020-07-17 17:46:30 · 433 阅读 · 0 评论 -
java 递归 以及字符串数组转字符串 字符串转字符串数组
org_code 结构 0 和 1 为上级/** * 获取组织管理树 */ public ResponseUtil treeOrg() { Map<String, Object> where = new HashMap<String, Object>(); List<OrgInfo> infoList = orgInfoMapper.list(where); List<OrgI..原创 2020-07-09 17:18:33 · 294 阅读 · 0 评论 -
java split()使用“.” “\” “|“ “*“ “+“要转义 笔记
import java.util.Scanner;import java.util.regex.Matcher;import java.util.regex.Pattern; public class test{ public static void main(String[] args){ Scanner in = new Scanner(System.in); String string=in.nextLine(); //要使用".".转载 2020-07-09 16:44:41 · 194 阅读 · 0 评论 -
Java 使用lambda表达式进行联查 以及 lambda表达式过滤空值
public ResponseUtil getOrder(Map<String, Object>where){ //查询主数据列表 List<LastAppprovedProjInfo> list = lastAppprovedProjInfoMapper.list(where); //补充办事处信息 Set<Long> officeIdSet = list.stream().map(LastApp..原创 2020-07-09 16:34:08 · 4135 阅读 · 1 评论 -
java 中 BigDecimal大小比较
标准做法baiint r=big_decimal.compareTo(BigDecimal.Zero); //和0,duZero比较if(r==0) //等于zhiif(r==1) //大于if(r==-1) //小于或者daoif(big_decimal.equals(BigDecimal.Zero)) //是否等容于0转载 2020-07-09 16:13:21 · 10963 阅读 · 0 评论 -
mybatis ORA-00903: 表名无效 以及 java中PreparedStatement和Statement详细讲解
mybatis ORA-00903: 表名无效<select id= "queryTable" resultMap="map>select * from #{tableName}</select>### SQL: select * from ?### Cause: java.sql.SQLException: ORA-00903: 表名无效发现有问题,实际上#{}方式通过?形式进行传递参数的,?它不支持tableName将#{}换成${}<...转载 2020-07-09 16:04:48 · 2432 阅读 · 0 评论 -
Java字符串比较方法equals的空指针异常
在Java语言中字符串比较有两种方式:== 和equals()。“==”比较的是针对两个String类型变量的引用,当两个String类型的变量指向同一个String对象(即同一个内存堆),则返回true。而equals()方法是对String对象封装的字符串内容进行比较,相同返回true。在用equals方法与其他值做比较的时候,有可能会导致抛出空指针异常。写一个小程序来举例说明:public class StringEqual { public static void equal1(.转载 2020-07-09 15:58:04 · 2079 阅读 · 0 评论 -
@Repository的作用?
Spring的注解形式:@Repository、@Service、@Controller,它们分别对应存储层Bean,业务层Bean,和展示层Bean。@Repository、@Service、@Controller 和 @Component 将类标识为BeanSpring 自 2.0 版本开始,陆续引入了一些注解用于简化 Spring 的开发。@Repository注解便属于最先引入的一批,它用于将数据访问层 (DAO 层 ) 的类标识为 Spring Bean。具体只需将该注解标注在 DAO类上即转载 2020-06-29 15:48:01 · 817 阅读 · 0 评论 -
java的break跳出多层循环
public static void main(String[] args){ lable2: for(int i=0;i<3;i++){ lable1: for(int j=0;j<3;j++){ System.out.println(j); if(j==1){ break labl.转载 2020-06-29 15:44:09 · 1119 阅读 · 0 评论 -
关于oracle中字段类型为date时 进行相应操作遇到的一些问题
oracle 时间字段类型为date 代码接受参数为string型时间戳sql中问题string型时间戳转为string型日期类型SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String time = Long.valueOf( startTime) * 1000 );转换结果为 :2020-06-29 00:00:00执行代码select * from PMS_LAST_A...原创 2020-06-29 15:17:53 · 587 阅读 · 0 评论 -
java随机生成一个6/8/12位密码,数字加字母的密码
代码如下:数字密码: 方法(1): public static void main(String[] args) { String code=""; Random rand=new Random();//生成随机数 for(int a=0;a<6;a++){ code+=rand.nextInt(10);//生成6位验证码 } ...转载 2018-04-03 15:39:41 · 6110 阅读 · 0 评论 -
mybatis plus + oracle date时间样式问题 2018-04-09T17:48:22.000+08:00
使用mybatis plus读取 oracle的date时间类型,查询结果类型为2018-04-09T17:48:22.000+08:00处理方法:@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")public Date getCreateTime() { return createTime;}在javaBe...原创 2018-04-12 13:55:01 · 7550 阅读 · 0 评论 -
Springboot循环依赖解决办法
首先说一下什么是依赖循环,比如:我现在有一个ServiceA需要调用ServiceB的方法,那么ServiceA就依赖于ServiceB,那在ServiceB中再调用ServiceA的方法,就形成了循环依赖。Spring在初始化bean的时候就不知道先初始化哪个bean就会报错。[java] view plain copypublic class ClassA { @Autowired ...转载 2018-05-04 14:26:52 · 13210 阅读 · 0 评论 -
java生成固定长度包含数字、大小写字母、特殊字符的密码
//随机密码生成 public static String makeRandomPassword(int len){ char charr[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890~!@#$%^&*.?".toCharArray(); StringBuild...原创 2018-05-23 16:07:50 · 7710 阅读 · 0 评论 -
@Transactional注解事务不回滚不起作用无效
这几天在项目里面发现我使用@Transactional注解事务之后,抛了异常居然不回滚。后来终于找到了原因。 如果你也出现了这种情况,可以从下面开始排查。一、特性先来了解一下@Transactional注解事务的特性吧,可以更好排查问题1、service类标签(一般不建议在接口上)上添加@Transactional,可以将整个类纳入spring事务管理,在每个业务方法执行时都会开启一个事务,不过这...转载 2018-06-08 09:36:50 · 534 阅读 · 0 评论