码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • SSM复习面试题


    目录

    • SSM
      • Mybatis
        • Map
        • 核心配置文件
        • SqlSession
        • ResultMap
        • RowBounds分页
        • Mybatis详细执行流程
        • ResultMap
          • 多对一(多名学生对应一名老师)
          • 一对多(一个老师对应多么学生)
        • Mybatis缓存
        • 动态SQL
      • Spring
        • 控制反转(IOC)
          • IOC创建对象的方式
          • DI依赖注入
          • 注解代替Bean对象创建和依赖注入
        • Bean的自动装配(getBean)
        • 面向切面编程(AOP)
      • SpringMVC
        • SpringMVC的执行流程
        • @RequestParam

    SSM

    Mybatis

    Map

    • 执行的sql需要的参数很多,前端传递后端,后端接收,之后在方法中封装为一个Map对象,最后.xml文件中通过Map对象中的key来取值

    核心配置文件

    • 引入连接数据库的配置文件
    • 开启日志
    • 开启二级缓存(之后需要在.xml配置文件中的命名空间进行配置)
    • 绑定注册XxMapper.xml配置文件(三种方式)

    SqlSession

    • SqlSessionFactoryBuilder
    • SqlSessionFactory
    • SqlSession(一级缓存,作用范围有限,而且线程不安全使用完之后需要立即关闭)

    ResultMap

    • 问题引入:解决实体类属性名和对应的数据表字段名不一致的问题
    • 解决方式:去别名(通过sql语句的as关键字)、resultMap结果集映射

    RowBounds分页

    • 不需要导入任何依赖,只需要new一个对象设置相应参数即可

    Mybatis详细执行流程

    • 调用Resources的静态方法来加载Mybatis的核心配置文件:mybatis-config.xml

    • 实例化SqlSessionFactoryBuilder来解析配置文件流,获取文件的配置信息,创建SqlSessionFactory工厂实例

    • 创建Transactional事务管理器和executor执行器

    • 通过调用SqlSessionFactory接口对象中的openSesson方法获取SqlSession对象

    • 调用SqlSession的getMapper方法获取业务接口对象

    • 调用业务接口对象中的方法进行CRUD

    • 关闭SqlSession

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GGWGNsa3-1666268778695)(…/Mybatis/Mybatis执行过程/执行流程解析.png)]

    ResultMap

    多对一(多名学生对应一名老师)
    • 按照结果嵌套
    • 按照查询嵌套
    一对多(一个老师对应多么学生)
    • 按照结果嵌套
    • 按照查询嵌套

    Mybatis缓存

    • 一级缓存:SqlSession,作用范围有限,与数据库同一会话期间查询的数据会放到一级缓存中,而且SqlSession不安全,需要及时关闭(注意:一级缓存是默认开启的,相当于一个Map)
    • 二级缓存:需要在Mybatis的核心配置文件中打开,之后需要在每个需要开启缓存的.xml文件中开启(一个XxMapper.xml配置文件一个二级缓存,namespace级别)

    动态SQL

    Spring

    控制反转(IOC)

    IOC创建对象的方式
    • 无参构造(默认)
    • 有参构造(结合.xml配置文件)
    DI依赖注入

    为创建的对象注入属性值

    • set方式注入(结合.xml配置文件)
    • 拓展注入(c、p命名空间,结合.xml配置文件)
    注解代替Bean对象创建和依赖注入
    • @Component
    • @Value

    Bean的自动装配(getBean)

    • @Autowired注解:先byType,后byName
    • @Resource注解:先byName,后byType

    面向切面编程(AOP)

    • 静态代理(租户-中介-房东)

    SpringMVC

    SpringMVC的执行流程

    • 用户在前端发送请求
    • SpringMVC的核心DispatcherServlet前端控制器,拦截用户发送的请求进行处理
    • 前端控制器根据拦截地请求通过处理器映射器来匹配对应的处理器Handler
    • 找到对应的处理器之后将相关信息返回给前端控制器
    • 前端控制器再通过处理器适配器根据特定规则来执行处理器中的控制方法,访问数据库,返回模型数据
    • 将模型数据返回给前端控制器,前端控制器再根据试图解析器对模型数据进行解析,将解析视图结果返回给前端控制器
    • 前端控制器根据返回结果调用相应视图返回给前端

    @RequestParam

    • 解决前端向后端提交的参数与后端方法接收的参数不一致的问题
  • 相关阅读:
    前端食堂技术周刊第 100 期:TS 5.3 Beta、ViteConf2023、Rspress 1.0、Fresh 1.5、Chrome 118
    【算法刷题】—7.30DP动态规划的应用
    ES6:Map
    Arnoldi Iteration 思考
    功能型饮料到底是好还是坏,这大概是最中肯的回答了
    React的基础用法-创建组件、渲染组件、处理状态和事件
    前台项目第一天(1-6)
    Java日期的学习篇
    Git学习笔记1
    从一个非科班的角度唠唠我的编程技术学习成长之路,希望对你有帮助
  • 原文地址:https://blog.csdn.net/qq_48575500/article/details/127434428
  • 最新文章
  • 你真的理解 volatile 关键字了吗?
    .NET 11 Preview 4 震撼发布:MAUI 抛弃 Mono,全量迁移 CoreCLR,性能与 NativeAOT 双炸场!
    博客园 × Halo 建站|国产电商新选择,商城版永久授权,3 折升级特惠!
    .NET 与鸿蒙的“技术巧遇”
    Codex 接入 Notion:把 AI 结果写回知识库
    曝华为"白嫖"开源团队技术方案事件——网友评论总结
    深度解读 AEC-Q100 Rev-J:为什么先进制程芯片的 ESD 电压降低?车规标准“放水”了?
    AI 相关概念之(基础层级):AI、ANI、AGI、ASI
    "MixFormer: Co-Scaling Up Dense and Sequence in Industrial Recommenders" 论文笔记
    Vector 选型与实战:vs OTel / Logstash / Fluentd 全维对比,及统一日志与指标管道的 AWS ECS 落地
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号