当前位置: 首页 > news >正文

学习笔记:黑马程序员JavaWeb开发教程(2024.11.9)

9.1 Mybatis-基础操作-环境准备


    这里也没做,到时候写案例,如果需要环境配置什么的,可以看看这个

9.2 Mybatis-基础操作-删除


    删除需要动态获取需要删除的id,使用方法传参,#{}的方式实现
 
    在编写的delete方法中,是没有返回值的,但是实际上是有的,就是返回方法影响语句的条数,其他crud语句也是有一样的返回值(int类型),但是一般不需要返回值

9.3 Mybatis-基础操作-删除(预编译SQL)


    预编译SQL,应该就是参数和语句分开发,不拼接在一起,一条一起发
 
    为了提高效率,MySQL会将优化编译过的sql缓存起来,缓存就是一块内存区域,就是用来存储数据的,下次执行sql语句的时候,会先检查缓存,看缓存当中有没有编译好的sql语句,有则直接执行,没有则走流程
 
    性能更高的原因是,预编译的sql语句是一样的,后面用的可以直接从缓存中获取
 
    Sql注入攻击,解决sql注入问题是因为预编译时不管输入什么样的字符串,都会把这个字符串作为一个参数,会被转义后面的or ‘1’=’1’也没用了(感觉没太说明白)
  
  

 在Mybatis中,#{}代表预编译

9.4 Mybatis-基础操作-新增


    有多个参数时,可以考虑封装到一个对象中
        属性名和字段名需要区分,不要写错了

9.5 Mybatis-基础操作-新增(主键返回)


    情景,发现使用getId输出出来的是null,因此引出需要加上一个注解。实现中:useGenerated = true代表我们需要拿到生成的主键值;ketProperty = ‘id’代表我们获取到的主键最终会封装到emp对象的id属性中

9.6 Mybatis-基础操作-更新


    主键一般是不变的,所以可以根据主键来完成更新

9.7 Mybatis-基础操作-查询(根据ID查询)


    查询是有返回数据的,但是数据很多,可以直接封装到员工对象中
    在测试过程中,出现了像deptId这样没有封装到的属性,原因是因为,实体类中的属性名和数据库表中的属性名不一致
        解决方案一:给字段起别名,让别名与实体类一致
        解决方案二:通过@results,@result注解手动映射封装
        解决方案三:开启Mybatils的自动驼峰命名映射封装
 
 

http://www.lryc.cn/news/480988.html

相关文章:

  • 【软考】系统分析师第二版 新增章节 第20章微服务系统分析与设计
  • 抓包工具WireShark使用记录
  • C++上机实验|多态性编程练习
  • php伪协议介绍
  • 『事善能』MySQL基础 — 2.MySQL 5.7安装(一)
  • 漫谈分布式唯一ID
  • 【复旦微FM33 MCU 开发指南】ADC
  • ORB_SLAM3安装
  • GoLang协程Goroutiney原理与GMP模型详解
  • 全文检索ElasticSearch到底是什么?
  • FPGA实现串口升级及MultiBoot(五)通过约束脚本添加IPROG实例
  • 文献阅读 | Nature Methods:使用 STAMP 对空间转录组进行可解释的空间感知降维
  • 【模块化大作战】Webpack如何搞定CommonJS与ES6混战(1-3)
  • [NewStar 2024] week5完结
  • IntelliJ IDEA的快捷键
  • 暮雨直播 1.3.2 | 内置直播源,频道丰富,永久免费
  • 单相锁相环,原理与Matlab实现
  • PICO+Unity 用手柄点击UI界面
  • Rust移动开发:Rust在iOS端集成使用介绍
  • 虚拟现实技术在旅游行业的应用
  • 《Java核心技术 卷I》Swing使用颜色
  • 神书《从零构建大模型》分享,尚未发布,GitHub标星22k!!
  • 【JavaEE进阶】Spring AOP 原理
  • 【网络安全】2.3 安全的网络设计_2.防御深度原则
  • 测绘程序设计|C#字符串及其操作|分割|取子串|格式化数值|StringBuilder类
  • 自然语言处理——Hugging Face 详解
  • 本地保存mysql凭据实现免密登录mysql
  • Ubuntu 22 安装 Apache Doris 3.0.3 笔记
  • 构建智能防线 灵途科技光电感知助力轨交全向安全防护
  • 【go从零单排】泛型(Generics)、链表