详解MyBatis 常用写法

网友投稿 268 2023-01-18


详解MyBatis 常用写法

什么是 MyBatis ?

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 java 的 POJOs(Plain Old Java Objects,普通的 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中需要传递一个容器

public List<User> queryByIdList(List userIdList);

SELECT * FROM user

WHERE userId IN

#{id}

2、concat 模糊查询

//模糊查询使用concat拼接sql

SELECT * FROM user

name like concat('%', concat(#{name}, '%'))

3、if + where 标签

用 if 标签判断参数是否有效来进行条件查询。

SELECT * FROM user

userId= #{userId}

AND name= #{name}

AND phone= #{phone}

where 动态语句中,where 标签会自动去掉 AND 或 OR。防止 WHERE AND 错误。

4、if + set

使用 set 标签可以动态的配置 SET 关键字,使用 if + set 标签,如果某项为 null 则不进行更新。

    UPDATE user

   

       

            name = #{name},

       

       

            phone = #{phone},

       

   

    WHERE userId = #{userId}

5、if + trim 代替 where/set 标签

trim 可以更灵活的去处多余关键字的标签,可以实现 where 和 set 的效果。

SELECT * FROM user

userId= #{userId}

AND name= #{name}

AND phone= #{phone}

UPDATE user

name = #{name},

phone = #{phone},

WHERE userId = #{userId}

5、choose(when, otherwise)标签

choose 标签是按顺序判断其内部 when 标签中的 test 条件是否成立,如果有一个成立,则 choose 结束。当 choose 中所有 when 的条件都不满足,则执行 otherwise 中的 sql。类似 java 中的 switch 语句,choose 为 switch,when 为 case,otherwise 则为 default。

SELECT * FROM user

WHERE name = #{name}

WHERE phone= #{phone}

WHERE email= #{email}

WHERE name = #{name}

总结

以上所述是给大家介绍的MyBatis 常用写法 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:内网研发管理平台(内网管理中心)
下一篇:包含post测试视频教程的词条
相关文章

 发表评论

暂时没有评论,来抢沙发吧~