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

学习笔记:黑马程序员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.kler.cn/a/387415.html

相关文章:

  • wordpress搭建主题可配置json
  • 吴恩达机器学习笔记(3)
  • docker基础:搭建centos7(详见B站泷羽sec)
  • KubeVirt入门介绍
  • srs http-flv处理过程
  • Spring资源加载模块,原来XML就这,活该被注解踩在脚下 手写Spring第六篇了
  • 使用成熟的框架做量化剪枝蒸馏
  • 机器学习系列----梯度下降算法
  • MVDR:最小方差无失真响应技术解析
  • 通过 Nacos 服务发现进行服务调用时的 500 错误排查与解决
  • C++类和对象 (下)
  • Linux数据管理初探
  • PG COPY 与 INSERT方式导入数据时, 表默认值表现的不同
  • 使用k8s RBAC和ValidatingAdmissionPolicy 配合来校验用户权限
  • Kafka 的一些问题,夺命15连问
  • 简单记录某云创建云主机部署docker,能ping通外网而curl不通的问题
  • 【go从零单排】初探goroutine
  • C# 项目中配置并使用 `log4net` 来输出日志
  • ChatGPT的多面手:日常办公、论文写作与深度学习的结合
  • OpenCV视觉分析之目标跟踪(11)计算两个图像之间的最佳变换矩阵函数findTransformECC的使用
  • MySQL基础-单表查询
  • 【MySQL】数据库整合攻略 :表操作技巧与详解
  • [编译报错]ImportError: No module named _sqlite3解决办法
  • 任天堂闹钟“Alarmo”已被用户破解 可显示自定义图像
  • Linux环境基础和基础开发工具使用
  • 【知识点总结】 Redis 数据类型操作指令