每日随笔131117

3 篇文章 0 订阅

1. 字符串判null与判空的顺序:细节问题,在判断条件上判null应该放在前面(短路求值~);

2. Mysql是不能再update(包括insert等中直接连接或嵌套查询自身的):

一个简单的例子,在一个根据order_value值降序管理界面记录列表中上移和下移功能的实现:

使用Mybatis框架,具体语句:

<update id="swapOrder" parameterType="Map">
    	update lectures as q1 join lectures as q2 on (q1.id=#{id,jdbcType=INTEGER} and q2.id=#{nextID,jdbcType=INTEGER})
			or(q1.id=#{nextID,jdbcType=INTEGER} and q2.id=#{id,jdbcType=INTEGER})
			set q1.order_value = q2.order_value,q2.order_value=q1.order_value;
    </update>
    <select id="getNextSmallerID" parameterType="int" resultType="String">
    	select id from lectures where order_value<(select order_value from lectures where id=#{id,jdbcType=INTEGER}) limit 1
    </select>
    <select id="getNextBiggerID" parameterType="int" resultType="String">
    	select id from lectures where order_value>(select order_value from lectures where id=#{id,jdbcType=INTEGER}) limit 1
    </select>

swapOrder过程使用了连接,但这里通过别名来实现的自身连接,参数map中包括了id和要与之交换的nextID(上移的nextID通过getNextBiggerID来获得,下移同理)。

3. 在实际项目中一定要注意释放资源,各种mysql的session要及时close掉,以及reader、流等,否则在压力测试面前问题立刻就暴露了。

另外,在继承结构中,能够通用的部分可以考虑设为static;

循环中使用Matcher,注意不要在循环内创建Matcher实例,而是用reset()(同String操作——StringBuilder);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值