1:java中有一次使用 10<a<100报错,但是a>=100看起来同样是两个表示判断的符号,后来查阅资料得知>=和<=是java自身规定的一种比较符号,而<>是两种符号,需要用&&连接起来。
2:get请求测试时候用&拼接参数
3:判断string或者对象为空时候null和""在前,防止空指针异常(什么情况下会出现空指针异常,有待深究)
4:修改以前同事写的代码时候发现一个sql语句问题
SELECT
MAX(test.heartrate) as heartrate
FROM
test
WHERE test.createDate like concat('%','2018-09-09','%');
查询心率的最大值,然后发现查询出来的值并不是其中最大的一个,查阅资料得知,varchar比较数据大小和int不一样,int值是直接比较大小,varchar是先比较第一位,例如100和9,先比较第一位9>1,所以varchar类型的9 大于100.修改数据类型为int便可以成功比较大小。另外一种方法
SELECT
MAX(test.heartrate+0) as heartrate
FROM
test
WHERE test.createDate like concat('%','2018-09-09','%');
这样查询时候,mysql会自动把值转化为int类型进行比较。
6:修改以前代码发现一个数据库更新语句问题
错误代码
UPDATE tb_user_equipment
SET
<if test="policeState!=null and policeState!=''">
policeState=#{policeState},
</if>
<if test="longitude!=null and longitude!=''">
longitude=#{longitude},
</if>
<if test="latitude!=null and latitude!=''">
latitude=#{latitude}
</if>
WHERE equipmentNum=#{equipmentNum}
正确代码
UPDATE tb_user_equipment
SET
<if test="policeState!=null and policeState!=''">
policeState=#{policeState}
</if>
<if test="longitude!=null and longitude!=''">
,longitude=#{longitude}
</if>
<if test="latitude!=null and latitude!=''">
,latitude=#{latitude}
</if>
WHERE equipmentNum=#{equipmentNum}
对比可以看出逗号位置不一样。错误的sql语句,在进行if判断时候,如果参数存在,会给参数后面加入一个逗号,会导致更新语句报错,正确写法则会避免这个问题。但是这个仅仅适用于前面有一个固定存在的更新数据,如果全部需要判断,这样也会出现问题。这时候就需要用到另外一个表达式<trim prefix="set" suffixOverrides=","> </trim>
代码如下
UPDATE tb_user_equipment
<trim prefix="set" suffixOverrides=",">
<if test="policeState!=null and policeState!=''">
policeState=#{policeState},
</if>
<if test="longitude!=null and longitude!=''">
longitude=#{longitude},
</if>
<if test="latitude!=null and latitude!=''">
latitude=#{latitude}
</if>
</trim>
WHERE equipmentNum=#{equipmentNum}
注意此时,逗号在每个参数最后位置,这个表达式用于去掉sql语句中多余的“,”,如果存在固定更新的字段的话,放在前面用第二种方法就可以了,不推荐用这种大量if判断,为多个接口提供一个更新语句,降低耦合。
7:清除linux系统下面tomcat里面的Catalina.out文件命令 cat /dev/null >catalina.out
8:po面向数据库,vo面向业务层谨记。
9:百度了一下netty大多数情况下强于mina,需要后期深入学习,目前用不到。