Java
Code洞洞妖
最美丽的永远是大脑^_^
展开
-
一次升级hibernate版本到5.4.21后仅单个机器出现的NoSuchMethodError问题
背景: 项目一个版本已迭代一段时间,负责登录的组件,在某台真机上出现如下报错:奇怪的线索: a. 相同 jdk环境1.8.0_131下仅在某个机器上出现问题(该机器必现) 其他机器正常b. 报错位置里 红色框两个类属于同一个jar包怎么同一个jar里还出现解析不到?而且仅在一台服务上这样。当前这个jar包也没有多个出现但是版本不同的情况呀。后来请教老大,说这种在一台机器上出现,基本上就是jar包冲突问题了,为什么其他环境没出现,基本是看运气,和类与jar的...原创 2020-10-21 20:51:19 · 288 阅读 · 0 评论 -
oracle mysql sqlserver 三种数据库的查看索引和新增普通索引 sql语句
有趣的一天啊,项目上有关某个表的数据总是性能不达标,分析后发现有条关于按条件count()数量的sql导致好几个功能性能很慢。于是,做成了再内存中维护这个count值,只在第一次查数据库取值,后续相应的全部变更都更新内存,想着毕竟就一个值而已。因为这个表业务意义很大,字段内存很长,1百万的记录数,耗时15s左右。也确实是通过这种方式,使得很多接口耗时达标。但是,提交代码,被review时,提醒说没必要内存维护,一句count()而已,where 条件里的字段如果是查用的条件,直接加索引就原创 2020-08-18 20:20:23 · 975 阅读 · 0 评论 -
List--方法内的list传递给入参后方法外获取不到的原因和解决办法
我们经常使用List来做数据集合存放数据,经常使用时我们知道list是可以实现地址传递,也就是在list通过方法的入参传递到方法内后,整个list的值可以在方法内使用:通过add方法可以在原来的基础上增加新值,也可以通过set(index,值)的方式改变原来index位置的数据而且入参传递的值经过add、set等后再方法外也是生效的,就是这个操作后的值,这就是地址传递,也就是对象传递。但是,我们容...原创 2018-03-31 18:12:20 · 5311 阅读 · 1 评论 -
SpringMVC对PathVariable的特殊字符.的处理默认是文件后缀
作为程序狗,生命不息,bug不止。在“止”这些bug的征程上,很讨厌遇到奇奇怪怪的bug,也很开心遇到这些奇奇怪怪的bug。通过暴露的这些bug,愈挫愈勇的去掌握欠缺的某个技术点或思维点。 对,一个痛苦而开心的过程。bug现象:A组件的接口实现逻辑上用到了访问B组件的关于使用名字去查询某表记录的接口。奇怪的是,当通过再正常不过的http请求访问时String bUrl ...原创 2018-03-20 21:26:15 · 2349 阅读 · 0 评论 -
hibernate实现查询某实体的某个字段的多个值的对应实体列表
在使用hibernate和数据库交互时,可以是使用hibernate的session的各种操作数据库方法,在实际使用中也常常结合hbm.xml文件里写好的query执行块,再通过setParameter方式设置参数后执行查询获取结果。其中经常使用的一个场景----hibernate实现查询某实体的某个字段的多个值的HQL---- ,总是忘记怎么写:解决办法:hibernate实现查询某个字段的多个...原创 2018-03-13 20:27:41 · 2191 阅读 · 0 评论 -
java.io.File文件操作容易失误的两点--mkdirs()、删除目录
在最近的使用到的java.io.File中,忽然产生一个新奇的bug: 程序正确执行后,为了优化存储文件的位置,将类似./json/的目录改成./data/json/后,程序执行异常,排查原因后发现是./data/json/路径没有被创建导致在这个路径下创建文件file.createNewFile()失败,但是明显在代码里有控制在不存在路径的情况下会创建目录。 File js...原创 2018-03-13 20:08:18 · 1724 阅读 · 0 评论 -
object后加“”虽简单但是不好,数字字符串转化为long失去小数
点object后加“”转为string,这样是不好的,会在sonar扫描时报错,直接String强转更好。带小数的转为long会失去小数,如:Long.parseLong("-1.23")是-1,long型,所以才是整型嘛。当然,Long.valueOf("-1.23")出来的是包装类型Long喽原创 2017-01-10 17:39:08 · 695 阅读 · 0 评论 -
Java下载文件时文件名出现乱码(但文件内容正常)
Java下载文件时文件名用new String(fileName.getBytes(),"ISO8859-1"); 转码就对了。1. String fileName=new String(URLEncoder.encode(fileName,"utf-8")); getResponse().addHeader("Content-Disposition","attachment;filename="+fileName); 或者new String(fileName.getBytes(),"ut原创 2016-12-02 11:09:21 · 18674 阅读 · 5 评论 -
JavaEE项目导入eclipse后出现红叉或者Target runtime Apache Tomcat v7.0 is not defined.等的解决办法
1.JavaEE项目导入eclipse后出现红叉解决办法2.如果还有红叉,一般是 目录里没有红叉但项目名有红叉 解决办法3. Target runtime Apache Tomcat v7.0 is not defined.解决办法原创 2016-12-01 20:00:20 · 2487 阅读 · 0 评论 -
Java编程对于Math里的sqrt与pow的double数据的相等问题——BigDecimal和 DecimalFormat实现
System.out.println((a*a+b*b)+" " +(c*c)+" " +Math.pow(c, 2)+" " +(new BigDecimal(Math.pow(c, 2))).doubleValue() +" "+(new BigDecimal(Math.pow(c, 2))).setScale(6, BigDecimal.ROUND_HALF_UP).doubleValue()+" "+Double.parseDouble((new DecimalFormat(".00").forma原创 2016-05-13 22:15:32 · 2002 阅读 · 0 评论