简介:规范的代码不仅给人一种简单易读,更重要的是可以提高代码的执行效率。
介绍:在java后台中,不要在for循环中进行数据库的操作,因为频繁的进行数据库操作不仅影响程序的执行效率同时也浪费系统资源,在当数据量大的情况下可能会导致程序出错。
解决方法:把需要修改的信息统计在一个集合中,一起进行修改。
介绍:在使用+进行拼接是都会生成一个新的对象,这对于本来资源就十分紧缺的JVM来说就是十分的昂贵,使用stringBuffer或者stringBuilder来进行拼接。
代码案例:
// 错误的使用方法
String s = "";
for (int i = 0; i < field.length; ++i) {
s = s + field[i];
}
// 正确的使用方法
StringBuffer buf = new StringBuffer();
for (int i = 0; i < field.length; ++i) {
buf.append(field[i]);
}
String s = buf.toString();
// 注意:stringBuffer和stringBuider使用方法相同,一个是线程安全的,一个是线程不安全的。
总结:
String:适用于少量的字符串操作的情况
StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况(非线程安全)
StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况(线程安全)
介绍:在项目中频繁使用或者多次声明的不变参数,配置到配置文件中去。
使用:
使用声明:
// 获取在线视频监控的SecretKey
@Value(value = "${secretKey}")
private String secretKey;
// 获取配置在线视频监控文件key
@Value(value = "${accessKey}")
private String accessKey;
介绍:在mybatis中根据多条件更新其他统一字段写法。
使用方法:
// 根据sn来修改online,status,mac
int updateKtvEquipmentStatusOnline(@Param("code") String code,@Param("online")String online,@Param("status")String status,@Param("updateTime")Date updateTime);
UPDATE ktv_equipment
SET
online=#{online,jdbcType=VARCHAR},
status=#{status,jdbcType=VARCHAR},
`updateTime`=#{updateTime, jdbcType=TIMESTAMP}
WHERE code IN
'${item}'
介绍:可以通过该类的getCreate()来获取之前设定的时间进行赋值到其他的字段上。
使用:
ktvEquipment.setCreateTime(new Date());
ktvEquipment.setUpdateTime(ktvEquipment.getCreateTime());
介绍:在mybatisselect语句中查询多少字段就写多少,不要使用*
使用:
介绍:lombok插件安装,可以在实体类上使用@Getter@Setter@ToString注解,不需要再生成该方法。
使用:本地没有的话需要点击下图中的Broswer respositories选择框进行搜索下载安装。
介绍:在一些暂时没有能力完成的代码块,只能写成死数据的地方使用//TODO和//FIXME进行注释,通过idea工具可以快速的进行定位注释代码块。
使用:
headers.add("sign",sgin);//TODO
headers.add("timestamp",timestamp);//FIXME
介绍:在获取到某个对象集合时,可能不是按照我们所希望的排序方式,从而需要我们手动按照特定的属性进行排序。
代码:
// listAnswerSheet是AnswerSheet类集合,根据id(Integer)来进行升序
Collections.sort(listAnswerSheet,new Comparator(){
@Override
public int compare(AnswerSheet a1, AnswerSheet a2) {
return a1.getId() - a2.getId();
}
});
总结:Integer类型降序 return a2.getId() - a1.getId();
String类型升序 a1.getName().compareTo(a2.getName()) ;降序的话调过来即可