Spring+Mybatis在Mapper.xml文件里如何拼接SQl语句

Spring+mybatis框架  需要写SQL

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

要记得写上文件头

(1)首选一个遇到的便是标签namespace的值是该Mapper对应的方法接口。

(2)然后就是最常用的增删改查

   id的值是对应Mapper接口里面的方法名,resultType里面的值是方法的返回值的类型,如果没有返回值可以不写,parameterType是方法传入参数的类型。都是类似的

(3)在我做多条件查询的时候出现了问题,就是当复合查询条件有一个为空的时候,SQL语句就会报错,因为从后台没有传过来值的类型,这时候就用到了和,具体的使用方法如下:

     and item1 LIKE  '%${item1}%'

    and  item2=#{item2}

标签会自动处理第一次遇到的And或者OR,这样就实现了符合查询,且允许查询条件为空。另外在我查询资料的时候发现还有标签,可以定义字符串规则,比如处理And或者Or字符串

这句换的意思就是:当where后紧随And或者Or的时候就自动除去。

(4)在插入数据的时候用set也会自动处理,问题,

 

     

               item1 = #{item1},

               item1 = #{item1}

    

这样的话在只有第一条数据的时候会自动删除后面的逗号。用表示就是


  ...

(5)批量删除数据的时候是根据ids删除的,这时候是一个数组,这时候用标签来遍历每一个id,达到批量删除的目的。

 
        delete from news_info where id in
      
                #{ids}
       
 

parameterType是指collection的数据类型,collection可以为list 、array、还可以为map,当为map的时候index为map的key。

(6)在查看资料的时候,发现了另外的标签,虽然我暂时还没有用到,但是还是根据自己的理解提一下这个标签,与java中的switch类似,mybatis中有choose

当title都不为空的时候,就要二者选一(前者优先),如果都为null,那么就选择中的内容,如果前面的里面有不为空的,就选择不为空的过程。


你可能感兴趣的:(框架技术)