8 Bug开发攻城狮

尚未进行身份认证

我要认证

自古,百无一用是深情,唯有套路得人心

等级
TA的排名 2k+

MyBatis拦截参数 自动带上limit

  现在公司项目里都是使用mybatis,突然有一天,看到一个奇怪的现象,在controller、service和dao都没有设置查询的 limit x,y ,但是,放开sql打印,确确实实打印了limit语句,并且实际效果也是limit的。  吓得我关了IDE,清了缓存,再试,居然还是一样的。  奇了怪了,这个为什么会自动加上limit查询呢?难道是mybatis新出的黑科技?但是,我看mybatis的版本,也才mybatis-spring-boot-starter 1.3.2,还是2018年3月

2020-06-20 17:31:15

手写sql掉进去的坑

  一个同事出去面试,面试官让他手写sql,也不复杂,就是学生表和班级表关联的查询。然后,他写完了,面试官说是错的,关联的时候就有问题。他百思不得其解,然后找我讨论,sql大概是下面的样子:select a.name , b.namefrom stuent a , class b on a.name=b.name  我乍一看,貌似是没问题的啊,内连接的 inner j...

2020-04-30 10:48:18

MySQL大表数据处理

  最近,领导发话了,要处理数据量很大的表,提前规避因数据量大而导致,查询、更新操作缓慢的问题。  数据量很大的表,我看了下,最多的records表,2400w条记录。  拉上DBA,一起断断续续的讨论了一个多星期,确定了方案(还不是最终方案,哎,跨部门协作,效率是真低)  前前后后讨论了四种方案,这里记录一下心路历程。1.分区 - 时间  最初是DBA提出的分区方案,分区键是...

2020-04-22 18:10:30

mybatis插入数据 获取自增id异常

  错误信息:Error getting generated key or setting result to parameter object. Cause:org.apache.ibatis.binding.bingingException: parameter ‘id’ not found. Available parameters are …出现问题原因,在DAO中的入参,是字符...

2020-03-31 20:05:26

json-lib的坑

  入职了一家新公司,新公司内网隔离,上外网,只进不出。使用的技术架构,虽然说已经用SpringBoot了,但是,各种细节不规范啊,还记得第一天下载了项目,都跑不起来,找了半天原因,原来是项目不是标准的Maven项目,应该是resources目录,它却是resource,少了一个s,导致编译器找不到资源目录;代码基本没有注释,理解起来全靠猜,这个对于不熟悉业务的新人来说,真的好痛苦。幸亏薪资给的不...

2020-03-07 14:50:39

可执行jar打包成exe文件(运行无须jre环境)

  可执行jar打包成exe文件,最常见的大概就是exe4j了吧。不过,现在都2020年了,这里介绍一下,使用 java8提供的 javapackager 的方式来实现。预备工作  首先,需要预备工作1.java8环境  这个就不用多说了2.Inno Setup Compiler  window上软件打包工具3.wix  打包成exe文件需要4.示例的可执行ja...

2020-01-28 16:01:30

记一次FileNotFoundException异常

  同事提交了代码,就回去过春节了,今天,业务人员来说他昨天修改的东西有问题,要我处理。看了下日志,发现是这个很easy的异常java.io.FileNotFoundException: \excel-templates\123 (系统找不到指定的路径。)  看错误信息,就知道是xls的模版在服务器上没有被程序获取到,又看了下git上是有的,那绝壁是运维哥哥的锅了。  果断吊运维去...

2020-01-20 17:13:03

MySQL中IN对NULL的处理

  先说结论,MySQL中NULL是不参与计算的,对NULL进行计算,只可以使用预设的IS NULL和IS NOT NULL来操作  student表中,有三条数据,id分别是1、2、3SELECT *FROM studentWHERE id IN (1,2,NULL)  会查询出来id=1和id=2的记录SELECT *FROM ...

2020-01-08 09:30:49

SpringBoot整合Shiro

  兜兜转转,转眼已经进入12月中旬了,马上就是2020年了,回顾这一年,技术上,真的提升很少很少,项目中使用的技术都是很老套的SpringMvc+MyBatis,有的老项目还使用的是Struts2+Hibernate,公司对技术也不重视,在稳定的基础上,不求有功,但求无过;也没有什么技术分享。我经历过上家公司的快速节奏,现在也放松下来了,去年我还自学python、学习数据结构和算法、碰到的技术问...

2019-12-16 18:07:52

java识别验证码

  之前在做数据核对部分工作,需要获取厂商的数据,有的厂商提供了api,可以直接通过api拿到数据;有的就没api,这部分,只能去它们后台获取了,那就需要爬虫,但是,过程中,又碰到登陆的验证码。这里记录一下识别验证码的过程。使用tess4j1.下载tessdata和训练语言包  在tessract的github直接下载即可,下载地址戳我(只需要项目的 tessdata文件夹 )。这里,...

2019-12-10 14:48:27

docker开启consul后 莫名连不上8500端口

  一个新项目,需要本地跑docker环境,配置完后,一切正常。过了几个小时,项目就各种报错,然后就全部不能用了,排查下来,原来是项目连consul超时了,导致后续都走不下去了  然后就看consul出啥问题了,在docker下查看进程docker ps -a  看到consul是up状态,是正常的  奇怪了,consul是正常的啊,为什么项目连consul就超时?尝试着在浏览...

2019-12-02 09:57:54

git 回滚到指定版本

1.切换到分支git checkout testBrand2.获得版本号git log  查询历次提交记录,得到版本号,比如,当前是“测试03”版本,要回滚到“测试02”版本,这里需要的版本号是 0090e3e7571931d2a08b95bde770790fd96028f23.回滚git reset --hard 0090e3e7571931d2a08b95...

2019-11-29 14:14:12

XMLSerializer的一个bug

  相同的代码,读取未格式化xml和已格式化xml,未格式化的解析起来报错,代码很简单1.java解析代码 // getResponseContent(fileName) 从指定文件名中读取文件内容作为字符串 String responseXML = getResponseContent("content"); // xml字符串 转换为 json字符串 ...

2019-11-20 13:42:33

SessionContext must be an HTTP compatible implementation

  使用SpringBootTest和shiro结合时,发生的异常。具体信息:org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalArgumentException: SessionContext must be...

2019-11-12 17:05:10

No SecurityManager accessible to the calling code

  使用SpringBootTest和shiro结合时,发生的异常。具体信息:org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apache.shiro.UnavailableSecurityManagerException: No S...

2019-11-12 17:02:03

记一次XSS注入问题

  事由:业务人员突然反馈后台的数据显示不正常,让技术找原因。1.排查问题  我在排查问题的时候,发现是用户在提交的时候,后端没有对内容进行XSS过滤,导致数据库中存入了脚本,包含脚本的内容返回给了前台,绘画页面的时候,因为脚本的标签没闭合,导致了绘画中断,所以页面显示不正常。  数据库中存储的是这样的2.问题分析  正好对XSS挺感兴趣的,就来看看,存入了js脚本后,到底是...

2019-11-07 17:17:13

nginx 使用 demo

说到http的呆梨,大家肯定知道有正向呆梨和反向呆梨。 正向呆梨:用于呆梨内部网络对Internet的连接请求,客户机必须指定呆梨服务器,并将本来要直接发送到Web服务器上的http请求发送到呆梨服务器中。 举个栗子:我想访问一个网站,但是,直接访问不了,比如在国内访问google.com是访问不了的,要想访问google.com要我们要通过呆梨,呆梨可以...

2019-02-26 09:46:04

2PC和后置提交

  分布式事务,常见的是2pc、tcc  2pc是分为两个阶段:preCommit和commit,多个节点preCommit成功,协调者再通知各节点,去commit  tcc是try-confirm-cancel,try阶段是各节点去检查参数和执行,若有一个节点出问题,则进入cancel阶段;若都顺利执行完,则进入confirm阶段    后置提交,在大佬58沈剑的文章分布式事务...

2019-10-24 09:18:19

java里为什么要set/get方法?

  今天在刷掘金的时候,看到一篇文章Java Getter/Setter “防坑指南” 来了里面有说道:通过使用 Getter/Setter 方法,变量的访问(get)和更新(set)将变得可控。考虑以下 Setter 方法的代码public void setName(String name) { if (name == null || "".equals(name)) ...

2019-10-09 10:22:19

https成长史

基础名词  先说一下基础名词,对称加密、非对称加密  对称加密:加密、解密使用同一副秘钥的加密算法,比如DES  非对称加密:加密、解密使用不同秘钥,加密使用公钥,则解密须使用私钥;反之亦然。比如RSAhttps 对称加密https使用对称加密,流程浏览器请求服务器,服务器返回秘钥key 浏览器得到秘钥key 浏览器使用秘钥key加密html,传输给服务器 服务器使用...

2019-10-04 10:19:57

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。