`

从项目中学到的SQL注意点

阅读更多

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>
  -------------------

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics