动态SQL标签大全

动态SQL标签大全

目录

动态SQL符号if标签(逻辑判断)where标签(SQL判断)choose,when,otherwise(Java中的switch)set (sql修改)trim(截断 添加)bind(模糊查询)foreach(循环)sql (复用)

动态SQL

根据不同的条件执行不同的SQL命令,称为动态SQL在Mybatis中的Mapper.xml中添加逻辑判断

符号

在Mybatis中,运算符号会被转义成字节码,所以要用代码符号

<<=>>=&'"<<=>>=&'"

if标签(逻辑判断)

成立则执行,不成立则不执行

where标签(SQL判断)

当编写where标签时,如果内容中第一个是and去掉第一个and如果 中有内容会生成where关键字,如果没有内容不生成where关键字

choose,when,otherwise(Java中的switch)

只要有一个成立,其他都不执行如果title和content都不为null或都不为""

生成的sql中只有where title=? 如果title和content都为null或都为""

生成的sql中只有where owner = “owner1”

set (sql修改)

作用:去掉最后一个逗号作用:如果里面有内容就会生成set关键字,没有就不生成

update log

id=#{id},

accIn = #{accIn},

accOut = #{accOut},

where id=#{id}

trim(截断 添加)

prefix 在前面添加内容suffix 在后面添加内容prefixOverrides 去掉前面内容suffixOverrides 去掉后面内容

update log

a=a,

where id=100

bind(模糊查询)

作用:给参数重新赋值场景:模糊查询 | 在原内容前或后添加内容

foreach(循环)

循环参数内容,还具备在内容的前后添加内容,还具备添加分割符功能适用场景:in查询 | 批量新增(mybatis中foreach效率大幅度降低)

如果希望批量新增,SQL命令

openSession()必须指定

//底层的JBDC的PrepareStatement.addBatch()factpry.openSession(ExecuteorType.BATCH); 属性

collection:添加要遍历的集合item:迭代变量,循环内使用#{迭代变量名}来获取内容open:循环后左侧添加的内容close:循环后右侧添加的内容separator:添加每次遍历尾部追加的分割符

sql (复用)

某些SQL片段如果需要复用,可以使用这个标签

id,accin,accout,money

select from log

相关推荐

世界杯买球网投攻略:理性投注与风险管理
365Bet官方

世界杯买球网投攻略:理性投注与风险管理

📅 06-29 👁️ 4824
鬼泣:装备获取秘籍大揭秘
365Bet官方

鬼泣:装备获取秘籍大揭秘

📅 06-27 👁️ 4541
投诉医院挂号费不退怎么投诉
mobile365-777

投诉医院挂号费不退怎么投诉

📅 07-01 👁️ 2161
关于冷库的那些事......
mobile365-777

关于冷库的那些事......

📅 07-02 👁️ 4378
在国外看不了世俱杯中文直播怎么办?
365bet网上手机投注

在国外看不了世俱杯中文直播怎么办?

📅 07-02 👁️ 7246
终于有人把华为认证全部说清楚了
mobile365-777

终于有人把华为认证全部说清楚了

📅 07-02 👁️ 4969