从项目中学到的SQL注意点

本文分享了在使用MyBatis进行数据库操作时的一些最佳实践,包括如何优化INSERT、UPDATE语句,合理使用时间戳字段,提高查询效率的技巧等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.insert的时候要使用isNotEmpty而不是使用isNotNull

2.传时间的时候在sql中用now();不要从前台传过来

3.在update的时候。如果有“更新时间”字段,使用如下方法
  -----------------
   UPDATE A
   set modify_time=now()
   <dynamic>
       <isNotEmpty prepend="," property="name">
         name=#name#
       </isNotEmpty>
   </dynamic>
  -----------------

4.使用where的时候,若传多个字段,要将有索引的字段放在前面,如:
  id上存在索引
  -----------------
  WHERE id=#id# and enable=1
  -----------------

5.尽量多使用逻辑删除(enable=0),少用物理删除

6.DO中不要使用long,使用Long
  从数据库中取出null时,若DO为long,将null转为long会报错

7.尽量少用join,不方便维护人员维护(需要阅读sql),尽量在service层处理逻辑
  (ps:遇到分页可能没有办法)

8.当传入一个数组时,sql中写法如下
  --------------------
  and
  id in
  <iterate property="idList" open="(" close=")" conjunction=",">
    #idList[]#
  </iterate>
  --------------------

9.sql中写大于号或小于号的方法
  -------------------
   <isNotEmpty prepend=" AND " property="createEndTime">
    <![CDATA[
        create_time < #createEndTime#
    ]]>
   </isNotEmpty>
  -------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值