MyBatisCodeHelper-Pro
MyBatisCodeHelper-Pro copied to clipboard
<if test="">位运算体验问题
场景如下 判断flagBit最后1,2,3位是否为1
<if test="(query.flagBit & 1) != 0">
UNION ALL
sql...
</if>
<if test="(query.flagBit & 2) != 0">
UNION ALL
sql...
</if>
<if test="(query.flagBit & 4) != 0">
UNION ALL
sql...
</if>
此时需要自己勾选true 而不是填写flagBit值 自动运算
希望未来版本可以优化这个场景
好建议 根据参数自动计算if test的值
可以先使用插件生成testcase那个功能 快速测试xml的sql
https://brucege.com/doc/#/quicktestsql
可以先使用插件生成testcase那个功能 快速测试xml的sql https://brucege.com/doc/#/quicktestsql
学到了新姿势。 不过最初期望是:利用插件预览组装的sql是否符合预期(因为我的场景比较特殊),而不是校验执行结果。
感谢回复!
实现了一个简单的解析,3.3.2发布哈,明天打个包
遇到两个小问题 veersion 3.3.2+2322
- 如果SQL中没有用到参数, 比如condition1仅在
标签test中使用变量, 预览SQL时type参数好像不支持输入文本框? - 我试了下type赋值1 , [√] type==2 也是被选中的 ☹️
<select id="sqlTest" resultType="java.lang.Integer">
select 1 from table
<where>
<if test="query.type == 1">
AND condition1 = 1
</if>
<if test="query.type == 2">
AND condition2 = #{query.type}
</if>
</where>
<if test="query.sort != null">
ORDER BY
<choose>
<when test="query.sort == 1">
create_time desc
</when>
<when test="query.sort == 2">
update_time desc
</when>
<otherwise>
</otherwise>
</choose>
</if>
</select>
https://github.com/gejun123456/MyBatisCodeHelper-Pro/assets/98020113/28cb6b32-c0df-41e9-9e0b-8ca629d52066
录了个使用流程,是姿势不对吗 (转.gif发现文件更大了… 直接上传附件了)
谢谢反馈 这种使用 . 号的支持还没弄,我优化一下
插件可以加个 去识别 if test 里面有哪些参数 然后通过值来控制
3.3.4 会支持带 点号的解析
可以先使用插件生成testcase那个功能 快速测试xml的sql https://brucege.com/doc/#/quicktestsql