码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MyBatis完成品牌数据的查询操作


    文章目录

    • 案例 完成品牌数据的增删改查操作
      • 准备环境
      • MyBatisX 插件
      • 查询所有数据
      • 查看详情
      • 条件查询
      • 多条件查询-动态条件

    案例 完成品牌数据的增删改查操作

    • 要完成的功能列表清单:
      • 查询所有数据
      • 查看详情
      • 条件查询
    • 添加
    • 修改
      • 修改全部字段
      • 修改动态字段
    • 删除
      • 删除一个
      • 批量删除

    准备环境

    • 数据库表 tb_brand
    • 实体类 Brand
    • 测试用例
    • 安装 MyBatisX 插件

    MyBatisX 插件

    • MyBatisX是一款基于 IDEA 的快速 开发插件,为效率而生。
    • 主要功能:
      • XML 和接口方法 相互跳转
      • 根据 接口方法生成 statement
    • 安装
      在这里插入图片描述

    查询所有数据

    在这里插入图片描述

    • 编写接口方法: Mapper 接口

      • 参数:无
      • 结果: List< Brand >
        在这里插入图片描述
    • 编写 SQL 语句:SQL映射文件:
      在这里插入图片描述

    • 执行方法,测试

    • 总结

      • MyBatis 完成 操作需要几步?
        三步:编写接口方法 -->编写 SQL -->执行方法
      • 实体类属性名 和数据库列表名不一致,不能自动封装数据
        • 起别名:在 sql 语句中,对不一样的列名起别名,别名和实体类属性名一样,可以定义 < sql >片段,提高复用性
        • resultMap :定义 < resultMap >完成不一致的属性名和列名的映射

    查看详情

    在这里插入图片描述

    • 编写接口方法:Mapper 接口

      • 参数:id
      • 结果:Brand
        在这里插入图片描述
    • 编写 SQL 语句:SQL映射文件
      在这里插入图片描述

    • 执行方法,测试

    • 总结

      • 参数占位符
        • #{}:执行 SQL时,会将 #{} 占位符 替换为?,将来自动设置参数值
        • ${}:拼 SQL,会存在 SQL注入问题
    • 使用时机

      • 参数传递,都使用 #{}
      • 如果要对表名、列名进行动态设置,只能使用 ${}进行 sql 拼接
    • parameterType:

      • 用于设置参数类型,该参数可以省略
    • SQL 语句中特殊字符处理

      • 转义字符
      • :CD提示

    条件查询

    在这里插入图片描述

    • 编写接口方法: Mapper 接口

      • 参数:所有查询条件
      • 结果:List< Brand >
        在这里插入图片描述
    • 编写 SQL语句:SQL映射文件
      在这里插入图片描述

    • 执行方法,测试

    • 总结

      • SQL 语句设置多个参数有几种方式?
        • 散装参数:需要使用 @Param(“SQL中参数的名称”)
        • 实体类封装参数:只需要保证 SQL中的参数名 和 实体类属性名对应上,即可设置成功
        • map集合 :只需要保证 SQL中的参数名 和 map 集合的键的名称对应上,即可设置成功
    • 思考:用户输入条件时,是否所有的条件都会填写?

    多条件查询-动态条件

    • SQL 语句会随着用户的输入或外部条件的变化而变化,我们称为动态SQL
      在这里插入图片描述

    • MyBatis对动态 SQL有很大的支撑
      在这里插入图片描述

    • 动态 SQL
      在这里插入图片描述

  • 相关阅读:
    基于Python的人脸互换系统设计与实现
    Java-基于SSM的动漫周边商城管理系统
    极客玩物 | 新手小白家用洗衣机选购指南:双十一必备攻略
    Maven版本管理
    boltdb一瞥
    告别繁琐粘贴,CleanClip Mac 版,让复制粘贴变得简单快捷!粘贴队列功能太强大了!
    汽车电子 -- CAN报文接收解析和发送组包
    Simulink 自动代码生成:手写代码替换生成代码Code Replacement Tool使用
    dubbo学习笔记
    ethercat EOE arp
  • 原文地址:https://blog.csdn.net/hihielite/article/details/127428160
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号