1. Java
1.1 获取HttpRequest
// 获取request
HttpServletRequest request = ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest();
1.2 try catch 后,注意后方代码执行不不执行的问题
- 最近自己写的一个加密工具,代码review时被发现了问题,
如果没有添加throw语句的话,那么出现加密出错的异常的话,后边代码仍然继续执行,返回加密通过
,这违背了我们的初衷,引以为戒!
2. MySQL
2.1 concat, concat_ws, group_concat
- concat() 函数可以进行拼接,分隔符需要自己一个个写
- concat_ws()函数可以指定分隔符,是concat()的加强版,注意分隔符为null时,拼接结果也为null
- group_concat()函数,group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator ‘分隔符’] ),能去重,能排序,能指定分隔符
2.2 mybatis中指定jdbctype必须为大写
2.3 case when then else end
case when {条件} then {true的值} else {false的值} end
,像Java里的三元运算符
update bu_hold_header
set STATE = (CASE WHEN UN_HOLD_WEIGHT - #{weight} = 0 THEN 20 ELSE 10 END),
UN_HOLD_WEIGHT = (UN_HOLD_WEIGHT - #{weight}),
HOLD_WEIGHT = (HOLD_WEIGHT + #{weight}),
HOLD_NUM = (HOLD_NUM + 1)
where id = #{id}
and (UN_HOLD_WEIGHT - #{weight}) >= 0
2.4 insert后返回主键
-
useGeneratedKeys
=“true”keyProperty
=“id”,insert标签中设置好这两个后,需要用对象来接受,而并不是直接返回ID值 -
这个其实类似我们调用baseMapper里原生的
insert
方法,这个insert也能对我们传进去的对象赋上id值
-
另一种使用
selectKey
的方法,这里指定了keyProperty之后,还是修改的是传入的对象,我们直接调用对象的getId即可
<insert id="addUser" >
insert into user (username,password,name,create_time,sex,phone,department,company,address)
values(#{username},#{password},#{name},#{createTime},#{sex},#{phone},#{department},#{company},#{address})
<selectKey keyProperty="id" resultType="java.lang.Integer">
SELECT LAST_INSERT_ID()
</selectKey>
</insert>
2.5 “不单条处理,看看能不能一条SQL把这些数据全拼出来”
- 这是本聪老师对我代码的一次优化,在SQL层进行拼接的时候,要考虑能不能一下全查出来,
出现多条数据每条都要查一次的时候,能不能一次性解决?
,这是我要考虑的问题,一条一条的处理太沙雕了 - Mybatis传数组,使用 foreach 语句,如下
<select id="getProductNamesAndSumQty" resultType="com.jd.jcloud.busi.trade.domain.BuSupplyDeatil">
SELECT
HEADER_ID as headerId,
GROUP_CONCAT(product_name) as allDetailNames,
sum(QTY) as qty,
sum(SCHEDULE_QTY) as scheduleQty,
sum(COMPLETE_QTY) as completeQty
FROM
bu_supply_deatil
WHERE
HEADER_ID IN
<foreach collection="supplyHeaderIds" item="item" index="index" open="("
separator="," close=")">
#{item}
</foreach>
GROUP BY header_id
</select>
3. 写在最后吧
一直想着什么时候把笔记整理整理,拖到了现在。整理起来发现还真的挺多的,感谢这一段时间大家对我的帮助,聪哥,民哥,感谢大家的耐心,对我这个新人无限的包容,我该如何去回馈呢?
上班到现在的这几个月里的感受,就如标题中所写,现在到没有觉得孤独,压力也不是很大了,更多的还是要勉励自己不断向前,把生活规律一些,再规律一些,每天都持续进步,就是每一个新的一天的自己都比昨天的自己牛,我想,这才是我最想要的状态吧!