mybatis 标签sql、include、if、foreach
除了常用的基本标签,还有一些标签的使用可以让我们代码简单减轻难度。
sql
一般用来重用,通常是查询语句select…from…,然后配合include标签引用
if
if标签配合其test属性,比如
<if test="startDate != null ">and date_format(DATE,'%Y-%m-%d') >= str_to_date(#{startDate},'%Y-%m-%d')</if>
在test属性判断为空或空字符串等操作,然后标签块中写筛选条件,通常后端开发时会考虑前端的多条件搜索,事先对每个字段进行if判断,例如编号等要求相等,名称等模糊匹配,减少再次开发。
foreach
foreach是功能比较强大的标签,通常用作批量操作,如批量删除、批量更新等。
<foreach collection="list" item="item" index="index" open="" close="" separator=";">
update tf_f_report_hour_of_work
<set>
FONT_TIME = ${item.fontTime}
</set>
where ID = ${item.id}
</foreach>
上面的代码为批量更新,DAO层传来的为所有批量更新的list,用foreach进行循环。