框架:mybatis常用标签(refid、foreach、trim)

1、mybatis中refid是什么意思

1、首先定义一个sql标签,一定要定义唯一id

id="Base_Column_List" >name,age
2、然后通过id引用
id="selectAll">
select 

    from student

这个会自动把上面的代码贴过来

即:

相当于mysql里的视图!!!



2、mybatis动态sql中foreach标签的使用


foreach标签主要用于构建in条件,他可以在sql中对集合进行迭代。如下:

id="deleteBatch"

delete from user where id in

collection="array" item="id" index="index" open="("  close=")" separator=","> #{id}

我们假如说参数为----  int[] ids = {1,2,3,4,5}  ----那么打印之后的SQL如下:

delete form user where id in (1,2,3,4,5)

释义:

collection:collection属性的值有三个分别是list、array、map三种,分别对应的参数类型为:List、数组、map集合,我在上面传的参数为数组,所以值为array

item :表示在迭代过程中每一个元素的别名

index:表示在迭代过程中每次迭代到的位置(下标

open :前缀

close:后缀

separator:分隔符,表示迭代时每个元素之间以什么分隔

我们通常可以将之用到批量删除、添加等操作中。

相当于mysql里的游标!!!


3、mybatis动态sql中的trim标签的使用


trim标记是一个格式化的标记(format),可以完成set或者是where标记的功能,如下代码:

1、

select * from user 

prefix override="AND |OR">

AND name= #{name}

AND gender= #{gender}

假如说name和gender的值都不为null的话打印的SQL为:

select * from user where   #  name = 'xx' and gender = 'xx'

红色标记的地方是不存在第一个and的,上面两个属性的意思如下:

prefix:前缀      

prefixoverride:去掉第一个and或者是or

 

2、

update user

suffix override="," suffix=" where id =#{id} ">

name=#{name} ,

gender=#{gender} , 

假如说name和gender的值都不为null的话打印的SQL为:

update user set name='xx' , gender='xx'  whereid='x'

在红色标记的地方不存在逗号,而且自动加了一个set前缀和where后缀,上面三个属性的意义如下,其中prefix意义如上:

suffixoverride:去掉最后一个逗号(也可以是其他的标记,就像是上面前缀中的and一样)

suffix:后缀
 

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