2018年12月工作中遇到的问题

1SimpleDateFormat是线程不安全的类

一般不要定义为 static 变量,如果定义为static,必须加锁,或者使用 DateUtils 工具类。

2、推荐尽量少用 else, if-else 的方式可以改写成

3、后台输送给页面的变量必须加$!{var}——中间的感叹号

说明: 如果 var=null 或者不存在,那么${var}会直接显示在页面上。

4、获取当前毫秒数 System.currentTimeMillis(); 而不是 new Date().getTime();

说明: 如果想获取更加精确的纳秒级时间值,用 System.nanoTime()。在 JDK8 中,针对统计时间等场景, 推荐使用 Instant 类。

     5、QPS:每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。   

6、xml 配置中参数注意: #{}, #param# 不要使用${} 此种方式容易出现 SQL 注入。

7、【强制】在表查询中,一律不要使用 * 作为查询的字段列表,需要哪些字段必须明确写明。

说明: 1增加查询分析器解析成本。 2增减字段容易与 resultMap 配置不一致。

8、【强制】 POJO 类的 Boolean 属性不能加 is,而数据库字段必须加 is_,要求在 resultMap 中进行字段与属性之间的映射。


说明: 参见定义 POJO 类以及数据库字段定义规定,在<resultMap>中增加映射,是必须的。在 MyBatis Generator 生成的代码中,需要进行适当的修改。

9、执行数据库删除操作方案:

     1、逻辑删除,一般所有删除操作都用此方法:

              给每一条数据一个标志位,标志是否已删除。

           补救措施:

              如果表A里面没有标志位,则可以新建表B作为垃圾箱,表结构与表A一模一样。每次删除表A之前先往表B里面插入要删除的数据以作备份。

     2、物理删除:一般如无强制要求怎不能使用此方法。

10、问题解决

今天在进行本机的数据库连接的时候出现了一个问题:

Caused by: java.sql.SQLException: Unknown system variable ‘tx_isolation’

 

一开始以为是隔离级别的问题,但是最终排查出来了问题是mysql-connector-java的版本太低,数据库的版本太高 因此将mysql-connector-java升级到最新版本就解决了问题.

11、BootStrap Model框点击空白处不关闭

$('#lookModal').modal({backdrop: 'static', keyboard: false});

其中 ,backdrop:’static’指的是点击背景空白处不被关闭;

keyboard:false指的是触发键盘esc事件时不关闭。

12、SpringBoot 为MapperScan添加动态扫描(占位符)功能

只扫描一个包

扫描多个包

 

原因是:

①、类UserServiceImpl实现了接口IuserService
 
②、实现类UserServiceImpl继承了ServiceImpl
 

 

③、类ServiceImpl有继承了BaseMapper

④、注解@MapperScan就是给baseMapper赋值
 

13、方法返回值为void时,如果最后不加return;360浏览器会重定向到请求地址,导致结果是方法执行了2次。谷歌没有这个问题。

 

推荐:在返回值为void的方法加上return,就不会出现以上问题

 

文章来源: blog.csdn.net,作者:轻狂书生FS,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/LookForDream_/article/details/86539562

(完)