(145条消息) 【2022最新版】MyBatis面试题总结(38道题含答案解析)_mybatis面试题2022_程序媛小琬的博客-博客
10年积累的
成都做网站、成都网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先
网站制作后付款的网站建设流程,更有
寿宁免费网站建设让你可以放心的选择与我们合作。
(145条消息) MyBatis-Plus分页插件Page原理分析_酷爱编程的小猿同学的博客-博客_mybatisplus分页插件原理
文件的存储、数据的读取 等都是 数据持久化操作;
对表数据进行增删改查 的操作 就是数据持久化;
Mybatis高频面试题总结(2022最新) - 知乎 (zhihu.com)
Mybatis 是如何进行分页的?
Mybatis 使用 RowBounds 对象进行分页,它是针对 ResultSet 结果集执行的内存分页,而非物理分页,先把数据都查出来,然后再做分页。
可以在 sql 内直接书写带有物理分页的参数来完成物理分页功能,也可以使用分页插件来完成物理分页。
(145条消息) Mybatis3 缓存收回策略(eviction)_清_澈的博客-博客_mybatis eviction
二级缓存
缓存的数据结构:
Mybatis的缓存实际上就是一个HashMap,key是真正执行的sql语句,value是缓存的结果。
- MyBatis在多表查询时,极大可能会出现脏数据,有设计上的缺陷,安全使用二级缓存的条件比较苛刻。
- 在分布式环境下,由于默认的MyBatis Cache实现都是基于本地的,分布式环境下必然会出现读取到脏数据,需要使用集中式缓存将MyBatis的Cache接口实现,有一定的开发成本,直接使用Redis、Memcached等分布式缓存可能成本更低,安全性也更高。
Mybatis框架简介
- MyBatis框架是一个开源的 数据持久层框架。
- 它的内部 封装了 通过JDBC访问数据库的操作,支持普通的SQL查询、存储过程和高级映射,几乎消除了所有的JDBC代码和参数的手工设置以及结果集的检索。
- MyBatis作为持久层框架,其主要思想是将程序中的大量SQL语句剥离出来,配置在配置文件当中,实现SQL的灵活配置。
- 这样做的好处是将SQL与程序代码分离,可以在不修改代码的情况下,直接在配置文件当中修改SQL。
什么是ORM?
- ORM(Object/Relational Mapping)即对象关系映射,是一种 数据持久化技术。
- 它在对象模型 和 关系型数据库 建立 对应关系,并且提供一种机制,
- 通过JavaBean对象 操作 数据库表的数据。 MyBatis通过简单的XML或者注解的方式进行配置和原始映射,将实体类和SQL语句之间建立映射关系,是一种半自动(之所以说是半自动,因为我们要自己写SQL)的ORM实现。
Mybatis动态sql有什么用?执行原理?有哪些动态sql?
- Mybatis动态sql可以在Xml映射文件内,以标签的形式编写动态sql,执行原理是根据表达式的值完成逻辑判断并动态拼接sql的功能。
#{}和${}的区别是什么?
#{}
是预编译处理 占位,${}
是字符串替换 拼接。- Mybatis在处理
#{}
时,会将sql中的#{}
替换为?号,调用PreparedStatement的set方法来赋值; - Mybatis在处理
${}
时,就是把${}
替换成变量的值。 - 使用
#{}
可以有效的防止SQL注入,提高系统安全性。 - 简单说,#{}是经过预编译的,是安全的;${}是未经过预编译的,仅仅是取变量的值,是非安全的,存在SQL注入。
当实体类中的属性名 和 表中的字段名不一样,怎么办?
- 第1种: 通过在查询的sql语句中定义字段名的别名,让字段名的别名和实体类的属性名一致。
- 第2种: 通过 `` 来映射字段名和实体类属性名的一一对应的关系。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
本文题目:mybatis框架-创新互联
文章出自:
http://cxhlcq.com/article/ecojo.html