ITPub博客

首页 > IT职业 > IT职场 > 代码怎么写才能被面试官看上?小编带你瞧瞧

代码怎么写才能被面试官看上?小编带你瞧瞧

原创 IT职场 作者:wxt020 时间:2020-10-31 18:13:30 0 删除 编辑

工作了几个月,感觉自己代码很不规范,有很多冗余,比较乱,请问怎么针对性的改善代码规范?

下面分享一篇大佬的规范代码实操。

代码能够写成这样 666 啊,大佬收徒吗?

一、MyBatis 不要为了多个查询条件而写 1 = 1

当遇到多个查询条件,使用where 1=1 可以很方便的解决我们的问题,但是这样很可能会造成非常大的性能损失,因为添加了 “where 1=1 ”的过滤条件之后,数据库系统就无法使用索引等查询优化策略,数据库系统将会被迫对每行数据进行扫描(即全表扫描) 以比较此行是否满足过滤条件,当表中的数据量较大时查询速度会非常慢;此外,还会存在SQL 注入的风险。

反例:

<select id="queryBookInfo" parameterType="com.tjt.platform.entity.BookInfo" resultType="java.lang.Integer">select count(*) from t_rule_BookInfo t where 1=1<if test="title !=null and title !='' ">AND title = #{title} </if><if test="author !=null and author !='' ">AND author = #{author}</if></select>

正例:

<select id="queryBookInfo" parameterType="com.tjt.platform.entity.BookInfo" resultType="java.lang.Integer">select count(*) from t_rule_BookInfo t<where><if test="title !=null and title !='' ">title = #{title} </if><if test="author !=null and author !='' ">AND author = #{author}</if></where></select>

UPDATE 操作也一样,可以用标记代替 1=1。地址:https://www.bzcdn.cn

二、迭代entrySet() 获取Map 的key 和value

当循环中只需要获取Map 的主键key时,迭代keySet() 是正确的;但是,当需要主键key 和取值value 时,迭代entrySet() 才是更高效的做法,其比先迭代keySet() 后再去通过get 取值性能更佳。

反例:

//Map 获取value 反例:HashMap<String, String> map = new HashMap<>();for (String key : map.keySet()){String value = map.get(key);}

正例:

//Map 获取key & value 正例:HashMap<String, String> map = new HashMap<>();for (Map.Entry<String,String> entry : map.entrySet()){String key = entry.getKey();String value = entry.getValue();


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69984164/viewspace-2731395/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
新零售拼购商业模式系统开发找许生微/电17340689890,我们能定制开发:我们了解市场上的所有的热门案例、热门模式,不单单是单一的一种模式,软件等多种商业模式系统,我们都能为您定制开发,支持定制开发。

注册时间:2020-09-19

  • 博文量
    18
  • 访问量
    6069