日期:2014-05-16  浏览次数:20447 次

关于某些数据库操作的技巧
1、在数据库查询操作中,有时候会要判断传入的参数是否为空,为空的话就不拼这个查询条件,则可以用
select * from tab where ${arg} is null or cloum = ${arg}

2、在数据库插入操作,尤其是对中间表的插入,需要插入一个list,传统的做法是在程序上遍历这个list,然后再循环插入,现在可以这样
表1:tab1    中间表:tab_midle  表2:tab2

insert into tab_midle select cloum_1, cloum_2 from tab1 left join tab2 on 1=1
where cloum_1 in (${list}) and cloum_2 in (${list})

3、关于处理select * from tab where cloum in (${arg})
如果${arg}>1000条,则数据库会报错,程序段处理
将${arg}参数切分成多个list,每个list小于1000
然后拼接sql 为 select * from tab where cloum in (${arg1}) or cloum in (${arg2})
or cloum in (${arg3}) ...
但考虑到性能问题,尽量还是不要用,除非业务上不得已的需求


码字不容易,有其他操作数据库的技巧也给留个言共享下啊,大神们