- 博客(30)
- 资源 (3)
- 收藏
- 关注
原创 mysql覆盖索引
select的数据列只用从索引中就能够取得,不必读取其他数据行,MySQL可以利用索引返回select列表中的字段,这样存储引擎获取对应行就可以返回结果,而不必根据索引再次回表读取数据文件。覆盖索引优化涉及有以下几点:判断是否使用了覆盖索引:当一个查询所查询的列都在索引字段上,且在查询分析器EXPLAIN的Extra列可以看到“Using index” ,则可判定为覆盖索引。注:遇到以下情况,执行计划不会选择覆盖查询1.select选择的字段中含有不在索引中的字段 ,即索引没有覆盖全部的列。2.wher
2022-06-14 10:30:19 2093 1
原创 SXSSFWorkbook的简单使用(附工具类)
在工作中使用到了POI中的SXSSFWorkbook做excel导出,本文将简单介绍SXSSFWorkbook的使用及其做excel导出的一个通用工具类。 SXSSFWorkbook是属于apache基金会的Excel导出工具类,从其官网上可以看出SXSSFWorkbook实现了Workbook接口。 SXSSFWorkbook是实现“BigGridDemo”策略的XSSFWorkbook
2022-06-10 16:51:29 6076
原创 SpringBoot配置文件(application.properties/yml等)加密
起因手写了一个redis相关项目,开源到gitee等不想暴露redis地址和密码。(平时工作中没用到,会使用配置中心来放敏感配置)经过查了一下,大多数人使用的是jasypt来做加密,于是开始操作:添加依赖这里的version需要根据springboot版本自定,本文中使用的版本分别为jdk:jdk1.8.0_131springboot:2.6.2jasypt:3.0.4<dependency> <groupId>com.g
2022-03-03 15:47:55 6941 3
原创 Java 异常Exception e中e.getMessage()、e.toString()、e.printStackTrace()方法的区别
String getMessage() :返回此 throwable 的详细消息字符串。String toString() : 返回此 throwable 的简短描述。void printStackTrace():将此 throwable 及其追踪输出至标准错误流。 (即 调用此方法会把完整的异常信息打印到控制台)ex: @Test public void TestInfo() { String str =null; try {
2021-10-08 14:13:02 3066
原创 JPA乐观锁异常(OptimisticLockingFailureException)解决方案
1 背景项目持久层框架使用spring-data-jpa,jpa实现采用hibernate。实体使用乐观锁的方式加锁,也就是添加version字段。 @Version private Long version;乐观锁:给数据加一个版本, 每一操作数据就更新版本,不会上锁,但是在更新的时候你会判断这期间有没有人去更新这个数据悲观锁:给数据加了一把锁 ,同事务只能一个线程进行操作,使用完了锁释放, 没释放前后面想要操作的人就得排队 ,效率低,但是很安全2 问题描述异常信息
2021-09-17 13:46:32 11330
原创 Java根据传入的属性字段名称,以及bean类型,校验对象中的字段值是否存在null
public class ValidationUtil { private static final String PIX_GET = "get"; /** * 根据传入的属性字段名称,以及bean类型,校验对象中的字段值是否存在null * 当前只适用于驼峰式命名。 * * @param object * @param checkedFieldNames * @author xiongbangwen * @date.
2021-09-14 16:45:33 675
原创 maven常用命令
-D 传入属性参数-P 使用pom中指定的配置-e 显示maven运行出错的信息-o 离线执行命令,即不去远程仓库更新包-X 显示maven允许的debug信息-U 强制去远程参考更新snapshot包例如 mvn install -Dmaven.test.skip=true -Poracle其他参数可以通过mvn help 获取-- 清理项目生产的临时文件,一般是模块下的target目录mvn clean-- 项目打包工具,会在模块下的ta...
2021-09-03 10:10:21 1046
原创 git常用命令以及stash/cherry-pick/reset/revert用法
-- 初始化一个Git仓库git init-- 查看仓库的状态git status-- 将修改添加到暂存区git add . // 将所有修改添加到暂存区git add * // Ant风格添加修改git add *Controller // 将以Controller结尾的文件的所有修改添加到暂存区git add Hello* // 将所有以Hello开头的文件的修改添加到暂存区 如:HelloWorld.txt,Hello.java,HelloGit....
2021-09-03 10:04:33 515
原创 Hutool工具
简介Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当,Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。官方文档:https://www.hutool.cn/包含组件一个Java基础工具类,对文件、流、加密解密、转码、正则
2021-09-01 18:44:05 9087
原创 GitLab在线合并解决冲突后反向合并的问题
1、bugRepair --> dev目的:生产bug分支修改后,将bug分支合并到开发分支,然后在测试环境进行测试2、问题详细描述在gitlab上面做合并操作,出现冲突,解决冲突后提交,确认合并,发现两个分支互相合并了。总结:如果使用 Gitlab 提供在在线冲突解决工具的话,本来是将 A --> B 合并的,结果变成了先走 B --> A 合并,再走A --> B,导致分支管理混乱。(有冲突的情况才会有这种现象)3、分析与解决git正常的合并分支操作:
2021-09-01 18:42:18 2636
原创 项目后端git分支大体结构
开发:develop UAT: release预生产:hotfix (从master拉的,可以不用,主要用于生产bug修复) 生产:master以上主分支不能进行直接推送,必须走merge流程。1.版本需求:develop_0515 (从develop拉代码, 合并:develop_0515 --> develop)2.个人版本需求分支:develop_0515_xbw (从develop_0515拉代码,合并:develop_0515_xbw --> develo.
2021-05-21 10:44:31 238
原创 URLUtil(在url上往后追加参数和取出指定的参数)
一个实用的工具类,用java代码处理URL链接取出指定的参数值、往后追加参数。(其实就是简单的字符串处理,用了正则表达式进行分析)package com.neusoft.talentbase.staffing.common.utils;import java.util.Map;import java.util.regex.Matcher;import java.util.regex.Pattern;public class URLUtil { /** * 在url上往后追加参数.
2020-08-13 10:41:34 1622
原创 Oracle数据库创建用户相关
Oracle数据库创建一个用户,赋予角色,给相关表的只读(select)权限--创建用户create user etl_admin identified by YdEtl_ehr;--修改用户密码alter user etl_admin identified by YdEtl_ehr;--删除用户drop user etl_admin cascade;drop user etl_admin;--创建角色create role etl_admin_select;--授权角色grant
2020-06-29 10:44:42 180
原创 解决低版本spring中StringHttpMessageConverter中文乱码问题
项目架构比较老旧,spirng用的3.0.2,在使用@ResponseBody String做返回值的接口时,若客户端不做处理,Content-Type默认为text/plain;charset=ISO-8859-1,导致的问题是中文会显示乱码,变成???问号。查阅资料发现有以下几种解决方案:在@RequestMapping里面加入produces = "text/html;charset=UTF-8"@RequestMapping(value = "/getAllTask", metho.
2020-06-28 13:27:55 1699
原创 如果坚持有结果,那我想看看是什么
不知不觉已经毕业一年了,在这一年的工作中似乎进步很大,但真的去尝试一些面试的时候,无一例外的被“殴打”,不断的反思自己为什么还是不行呢?真的只是年限没达到一定程度吗?答案是否定的,我已经预感到自己要是在这么走下去,可能下一个被社会淘汰的就是我了。放眼过去的一年时间里,我好像并没有去坚持做过一件事,很多事情都是有始无终,想坚持健身,坚持自己做饭、坚持每天学习......基本上都没坚持过个把月。根本没有管理好自己的时间,反倒越来越像在学校那会,肆无忌惮的熬夜、刷剧、打游戏。内心告诉我这样下去是不行的。我
2020-06-14 21:26:39 210
原创 一文搞懂java线程状态
NEW:尚未启动的线程的线程状态RUNNABLE:可运行线程的线程状态,等待CPU调度BLOCKED:线程阻塞等待监视器锁定的线程状态WAITING:等待线程的线程状态,不带超时的。方式有:Object.wait、Thread.join、LockSupport.parkTIMED_WAITING:具有指定等待时间的等待线程的线程状态。方式有:Thread.sleep、Object.wait、Thread.join、LockSupport.parkNanos、LockSupport.parkUntil
2020-06-06 16:17:34 194
原创 java封装一个实用的StringUtil类
在项目中经常会对String进行一些操作,除了一些开源框架中的StringUtils,我把在项目中经常要用的方法封装成了一个StringUtil类,可供大家学习借鉴。
2020-06-06 14:59:30 782
原创 递归+循环实现走台阶算法
编程题:有n步台阶,一次只能上1步或2步,共有多少种走法?递归优点:大问题转小问题,可以减少代码量,同时代码精简,可读性好缺点:递归调用浪费了空间,而且递归太深容易造成堆栈的溢出循环迭代优点:代码运行效率好,没有额外空间的开销缺点:代码不如递归简洁,可读性较差附上代码package com.java_foundation.test_3;import org.junit.Test;/** * @program: java_...
2020-05-31 02:00:20 627
原创 java中方法的参数传递机制
方法的参数传递机制形参是基本数据类型(byte、short、char、int、long、float、double、boolean) *传递数据值2、实参是引用数据类型 *传递地址值 *特殊的类型:String、包装类等对象不可变性下面给到一个程序,看下会输出什么内容,帮助理解上面的意思package com.java_foundation.test_2;import java.util.Ar...
2020-05-31 01:02:19 497
原创 类初始化&实例初始化(附带经典“父子”面试题)
类初始化过程一个类要创建实例需要先加载并初始化该类 a.main方法所在的类需要先加载和初始化 2.一个子类要初始化要先初始化父类 3.一个类初始化就是执行<clinit>()方法 a.<clinit>()方法由静态类变量显示赋值代码和静态代码块组成 b.静态类变量显示赋值代码和静态代码块代码是从上到下按顺序执行的 c.<clinit>()方法只执行一...
2020-05-30 23:39:59 238
原创 一文搞懂java单例模式
单例模式作为java设计模式里最常用的一种设计模式之一,在我们日常的开发中大量被使用,现在我想从理论到实践重新梳理一下这个知识点,帮助基础薄弱的自己进一步加深理解。什么是单例模式(Singleton)“单例”,顾名思义就是只有一个类的实例单:唯一例:实例单例设计模式:确保某一个类只有一个实例,自行实例化并向整个系统提供这个实例,同时也提供全局访问的方法以供调用。要点确保一个类只能有一个实例 必须是自行创建这个实例,避免外部创建实例或者被子类继承从而创建额外实例...
2020-05-30 22:27:04 247
原创 学java必须搞懂这道计算题
分享一道经典的Java计算题,分享的同时也帮助基础薄弱的自己进一步加深理解:附上代码:package com.java_foundation.arithmetic;public class ClassicalCalculation_1 { public static void main(String[] args) { int i = 1; i = i++; int j = i++; int k = i+ ++i *...
2020-05-26 23:52:48 147
原创 java byte(字节)根据长度转成kb(千字节)和mb(兆字节)
读取二进制文件长度,将其转换为kb或者mb /** * byte(字节)根据长度转成kb(千字节)和mb(兆字节) * * @param bytes * @return */ public static int bytes2kb(int bytes) { BigDecimal filesize = new BigDecimal(bytes); BigDecimal megabyte = new BigDecima
2020-05-25 13:11:50 4395
原创 java小工具(1)——批量修改文件名
人事同事想批量修改一批员工文件名,原来是工号+姓名.jpg,现截取前八位工号作为文件名package com.utils;import java.io.File;public class changeName { public static void main(String[] args) { changeNames("D:\\Users\\ehrvendor4\\Downloads\\EMPPHOTO"); } public static void changeNames(S
2020-05-25 13:09:02 223
原创 在windows下web程序占用CPU的性能调试
之前在公司内部分享平台发一篇在生产环境排查的CPU性能问题的文章,比较通用,转到CSDN上与大家分享问题 业务系统的Tomcat服务器跑了一段时间后,发现业务系统进程占用的CPU资源在70%-80%,加上自助,移动端和报表,整个服务器的CPU处理将近100%运行状态。用户使用时非常慢。问题查找通过process explorer查看Tomcat进程下的线程下载地址: https://technet.microsoft.com/en-us/sysinternals/bb89...
2020-05-24 22:39:58 846
原创 JSONObject.toJSONString()自动修改属性格式,改变了大小写
在一次接口对接的过程中,本想把查询到的list对象通过fastjson序列化后传给客户端客户端需要的数据格式: [ { "RefID": "4365665", "Title": "任务标题", "Url": "http://10.10.1.131/oa/flow/?id=kfi921d9", "Receiver": "kf9654126", "ReceiveDate": 150597695...
2020-05-21 16:01:17 3432
原创 一个菜鸟程序员开始写Blog前后的内心独白
作为一名即将进入职场的大学生来讲,学习是最重要的。我们不可能刚进去就有机会上手项目或者贡献很多东西(除开高精尖人才),所以学习也就成了我们通往成功道路的唯一途径,但是很多时候我们有心去学却无力去做到真正学习,这是大学生的常态。就拿我自己来说,我经常会给自己定下一些学习小目标什么的,臆想着某天完成某计划,但结果却是一拖再拖,总想偷会懒下次一起做。”明日复明日,明日何其多。我生待明日,万...
2018-07-04 23:20:27 751
个人博客系统源码
2018-01-02
职工工资管理系统
2018-01-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人