• [MyBatis] SQL动态标签,SelecKey标签


     ✨✨个人主页:沫洺的主页

    📚📚系列专栏: 📖 JavaWeb专栏📖 JavaSE专栏 📖 Java基础专栏📖vue3专栏 

                               📖MyBatis专栏📖Spring专栏📖SpringMVC专栏📖SpringBoot专栏

                               📖Docker专栏📖Reids专栏📖MQ专栏📖SpringCloud专栏     

    💖💖如果文章对你有所帮助请留下三连✨✨

    🎨常用属性

    属性描述
    id在命名空间中唯一的标识符,被用来引用这条语句
    parameterType传入这条语句的参数的类全限定名或别名
    resultType期望从这条语句中返回结果的类全限定名或别名,resultType 和 resultMap 之间只能同时使用一个
    resultMap在命名空间中唯一的标识符,被用来引用这条语句 ,resultType 和 resultMap 之间只能同时使用一个
    flushCache将其设置为 true 后,只要语句被调用,都会导致本地缓存和二级缓存被清空,默认值:对于(select语句)false ;对于( insert、update 和 delete 语句)true
    useCache将其设置为 true 后,将会导致本条语句的结果被二级缓存缓存起来,默认值:对于(select语句)为 true
    useGeneratedKeys(仅适用于 insert 和 update)这会令 MyBatis 使用 JDBC 的 getGeneratedKeys 方法来取出由数据库内部生成的主键(比如:像 MySQL 和 SQL Server 这样的关系型数据库管理系统的自动递增字段),默认值:false
    keyProperty(仅适用于 insert 和 update)指定能够唯一识别对象的属性,MyBatis 会使用 getGeneratedKeys 的返回值或 insert 语句的 selectKey 子元素设置它的值,默认值:未设置(unset)

    🎨if/foreach多条件组合查询

    🎫

    如果参数值为数字int型,判断是否等于某个固定值时可能会导致判断失效

    两种解决办法:

    • 将参数类型改为Integer
    • 在判断添加中既满足不等于null也要满足不等于0

    🎫 

    用于更新或保存数据时的批量操作

    🎨set标签动态更新

    🎫

    可以动态更新需要更新的列,忽略其它不更新的列

    🎨where标签自动处理and或or

    🎫

    只会在子元素返回任何内容的情况下才插入 “WHERE” 子句,并且可以自动处理判断条件语句返回的第一个and或or,例:

    不使用where标签时,若id为空,where and语法错误

    🎨SelecKey标签使用

    🎫一些情况下,新增一条数据信息,但其主键(id)是数据库自动在数据库生成(自增),而有些业务逻辑的处理是需要要到这个生成的主键(id)。
    🎫标签就是用来获取这个生成的主键(id)

    1. <selectKey keyProperty="id" resultType="integer" keyColumn="id" order="AFTER">
    2. SELECT LAST_INSERT_ID() as id
    3. selectKey>

    🎫DEBUG 

    🎨sql标签 

    🎫用于定义可重用的 SQL 代码片段,以便在多个SQL语句中使用

    🎨一对多映射 

    🎫一对多:在“多”的一方,添加“一”的一方的主键作为外键。

    🎫一对多的关系: 就是一个A类类型对应多个B类类型的情况,需要在A类中以集合的方式引入B类类型的对象,在B类中定义A类类型的属性a。

    🎨接口编程

    🎫定义接口

    🎫创建dao/UserDao

    🎫获取mapper对象

  • 相关阅读:
    使用clip-path来画不同的形状,三角形,多边形,菱形,六边形等等
    百趣代谢组学文献分享:三组学整合分析在中医药研究中的应用
    二维码智慧门牌管理系统升级解决方案:高效运营,信息尽在掌握
    Top 5 免费 PDF 转 Word 转换工具
    高性能的5G毫米波天线(阵列)实现与性能评估
    瓦斯抽采VR应急救援模拟仿真系统筑牢企业安全生产防线
    企业spark案例 —— 出租车轨迹分析(Python)
    Android Kali NetHunter免root安装
    2022 Python 面试 100 问
    Spring Boot整合Swagger报错:“this.condition“ is null
  • 原文地址:https://blog.csdn.net/HeyVIrBbox/article/details/126984778