写公众号说实话挺久了,也因此认识了很多的朋友,咨询什么的都有,总之,或多或少的帮助到过一些人。最近想了好久,我往后应该写一些什么类型的文章?
1、偏理论的?
感觉在一篇文章里面去概述一些比较复杂的理论,说不说的完暂且不说,作为一个读者大部分肯定是没有耐心看下去的,而且看完吸收的也不会很多,这种东西还是得通过啃书的方式可能会更好。
2、偏代码层次的?
之前也写过几篇文章里面代码很多,但是其实很少有人认认真真的研究过那些代码,也没有验证过,因为大家有可能是在上班的路上,或者吃饭期间再看,所以只是一眼看过。
那么我就在想,我们可以分享一些什么东西,可以让大家在零碎的时间中学的可以落实的东西,我觉得这些东西得从涉及面小、落实快等方面入手,看了某个东西之后,可以快速的消化,并且可以落实到代码中的,我觉得才是最好的。
废话不多说,几天分享几个平时开发中遇到的小问题;
一、Java中提供的空集合到底有用没有?
这是我看了几篇文章,然后结合自己项目中的代码后所理解的,这个东西首先肯定是有用的。我们来看一段代码。
现在的接口基本都是基于RESTful风格的,如果将这个方法提供给别人,那么肯定会存在一个问题,可能会出现空指针异常,(真是经历)前端要去集合中取数据,如果前端没有做任何的非空判断,直接从集合中取,那么当返回null的时候,势必造成空指针异常。
所以查询不到数据的时候,我们应当判断该集合是不是为null,如果为null我们应该返回一个空的集合,如果我们直接new一个ArrayList其实是非常浪费资源的,这个时候Java中提供的Collections.emptyList(); 就排上用场了,它创建的是一个不允许添加、删除、修改的空集合;
修改后的代码
二、Mybatis批量修改语句
这是我今天早上碰到的一个问题,我们之前的批量修改是将一批数据的某个字段改为同一个值,比如批量逻辑删除,其实就是把需要删除的数据的status值改为0或者其他值,但是我们这个是这样的,编辑了好几条数据信息,然后每个数据信息的值是不一样的,为了减少数据库的连接次数,我们直接通过mybatis动态sql进行修改;
代码如下:
但从语句上看,确实毫无问题,但是在我调试的过程中(基于SpringBoot的项目),真的是白板艰难,一直报错。一直说语法存在问题,请查询手册。
报错信息:
### Error updating database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'update mall_product_specification
问题原因:
这是因为mysql不支持此方式的批量修改操作,所以当我们修改批量数据的时候,就会报这个错,如果修改的是单条数据,不会出现该错误。
解决方法:
在数据库的连接后面配置参数 &allowMultiQueries=true 即可
【推荐阅读】
SpringBoot整合easyexcel实现Excel的导出
本文分享自微信公众号 - 一个程序员的成长(xiaozaibuluo)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。