IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java面试手册V2.0+突击V3.0知识点整理(二十一) 附封面图片 -> 正文阅读

[Java知识库]Java面试手册V2.0+突击V3.0知识点整理(二十一) 附封面图片

在这里插入图片描述


1. 什么是Mybatis?

  • Mybatis是一款优秀的支持自定义SQL查询、存储过程和高级映射的持久层框架,消除了几乎所有的JDBC代码和参数的手动设置以及结果集的检索
  • Mybatis可以使用XML或注解进行配置和映射,Mybatis通过将参数映射到配置的SQL形成最终执行的SQL语句,最后将执行的SQL的结果映射成Java对象返回

2. Hibernate优点?

  • Hibernate建立在POJO和数据库表模型的直接映射关系上。通过xml或注解即可和数据库表做映射。通过pojo直接可以操作数据库的数据,它提供的是全表的映射模型
  • 优点:
    • 消除代码映射规则,被分离到xml或注解里配置
    • 无需再管理数据库连接,配置在xml中即可
    • 一个会话中,不要操作多个对象,只要操作Session对象即可
    • 关闭资源只需要关闭Session即可

3. Hibernate缺点?

  • 全表映射带来的不便,比如更新需要发送所有的字段
  • 无法根据不同的条件组装不同的sql
  • 对多表关联和复杂的sql查询支持较差,需要自己写sql,返回后,需要自己将数据组成pojo
  • 不能有效支持存储过程
  • 虽然有hql,但是性能较差,大型互联网需要优化sql,而hibernate做不到

4. Mybatis优点?

  • 小巧,学习成本低
  • 对比JDBC, 基本配置好了配置,大部分的工作量就专注在sql部分
  • 方便维护管理,sql不需要在Java代码中找,sql代码可以分离出来,重用
  • 接近JDBC,灵活,支持动态sql
  • 支持对象与数据库orm字段关系映射

5. Mybatis缺点?

  • 由于工作量在sql上,需要对sql熟练度高
  • 移植性差。sql语法依赖数据库,不同数据库切换会因语法差异而报错

6. 什么时候用Mybatis?

  • 需要一个灵活的、可以动态生成映射关系的框架时。大部分互联网项目使用Mybatis比例是很高的

7. Mybatis核心组件有哪些?分别是?

  • SqlSessionFactoryBuilder(构造器):它会根据配置信息或者代码来生成sqlSessionFactory
  • SqlSessionFactory(工厂接口): 依靠工厂来生成SqlSession
  • SqlSession(会话):既可以发送sql去执行返回结果,也可以获取Mapper接口
  • SQL Mapper:它是新设计的组件,是由一个Java接口和XML文件(或注解)构成的。需要给出对象的SQL和映射规则。它负责发送SQL去执行,并返回结果

8. #{}和${}的区别是什么?

  • ${}是字符串替换,#{}是预编译处理。一般用#{}防止sql注入问题

9. Mybatis中9个动态标签

  • if
  • choose (when、otherwise)
  • trim(where、set)
  • foreach
  • bind

10. xml映射文件中,有哪些标签?

  • select | insert | update | delete | resultMap | parameterMap | sql | include | selectKey 加上9个动态标签(sql为片段标签,通过标签引入sql片段,为不支持自增的主键生成策略标签)

上一篇:Java面试手册V2.0+突击V3.0知识点整理(二十) 附封面图片😍
下一篇:Java面试手册V2.0+突击V3.0知识点整理(二十二) 附封面图片😍


如果觉得封面图片还行,请顺手点个赞😍

在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-01 11:32:51  更:2021-11-01 11:33:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年10日历 -2024/10/30 21:31:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码