详解MyBatis 常用写法
什么是MyBatis?
MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJOs(PlainOldJavaObjects,普通的Java对象)映射成数据库中的记录。
1、forEach循环
forEach元素的属性主要有item,idnex,collection,open,separator,close。
1.collection:传入的List或Array或自己封装的Map。
2.item:集合中元素迭代时的别名。
3.idnex:集合中元素迭代是的索引。
4.open:where后面表示以什么开始,如以‘('开始。
5.separator:表示在每次进行迭代是的分隔符。
6.close:where后面表示以什么结束,如以‘)'结束。
//mapper中需要传递一个容器 publicListqueryByIdList(List userIdList); SELECT*FROMuser WHEREuserIdIN #{id}
2、concat模糊查询
//模糊查询使用concat拼接sqlSELECT*FROMuser namelikeconcat('%',concat(#{name},'%'))
3、if+where标签
用if标签判断参数是否有效来进行条件查询。
SELECT*FROMuser userId=#{userId} ANDname=#{name} ANDphone=#{phone}
where动态语句中,where标签会自动去掉AND或OR。防止WHEREAND错误。
4、if+set
使用set标签可以动态的配置SET关键字,使用if+set标签,如果某项为null则不进行更新。
UPDATEuser
name=#{name},
phone=#{phone},
WHEREuserId=#{userId}
5、if+trim代替where/set标签
trim可以更灵活的去处多余关键字的标签,可以实现where和set的效果。
SELECT*FROMuser userId=#{userId} ANDname=#{name} ANDphone=#{phone} UPDATEuser name=#{name}, phone=#{phone}, WHEREuserId=#{userId}
5、choose(when,otherwise)标签
choose标签是按顺序判断其内部when标签中的test条件是否成立,如果有一个成立,则choose结束。当choose中所有when的条件都不满足,则执行otherwise中的sql。类似java中的switch语句,choose为switch,when为case,otherwise则为default。
SELECT*FROMuser WHEREname=#{name} WHEREphone=#{phone} WHEREemail=#{email} WHEREname=#{name}
总结
以上所述是小编给大家介绍的MyBatis常用写法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!