Java面试题(12)- Mybatis框架
整理一些Java基础面试题,内容涵盖语言基础、并发、JVM、IO模型、中间件、开发框架等等。本章节的面试题有:Mybatis的适用场景是什么;MyBatis与Hibernate有哪些不同;Mybatis如何实现批量提交;Mybatis有缓存吗;#{}和${}的区别是什么;Mybatis如何解决SQL注入。
整理一些Java基础面试题,内容涵盖语言基础、并发、JVM、IO模型、中间件、开发框架等等。本章节的面试题有:Mybatis的适用场景是什么;MyBatis与Hibernate有哪些不同;Mybatis如何实现批量提交;Mybatis有缓存吗;#{}和${}的区别是什么;Mybatis如何解决SQL注入。
MySQL数据库存在多种数据存储引擎,每种存储引擎的锁定机制也有较大区别。各存储引擎使用了三种类型的锁定机制:表级锁定,行级锁定和页级锁定。以Innodb引擎为例子,它有7种锁。
严格来说,我算是全栈开发者,不是用Node.js通吃的伪全栈,而是掌握了HTML、CSS、JavaScript / JQuery、Vue、Android以及Java技术体系的真全栈。我并不是跟大家吹嘘自己技多不压身,因为掌握前端技术完全是生活所迫。如果可以选,我宁愿把花在JavaScript的时间用去学习Java。
每天存储一亿条数据记录,数据库怎么设计;在分布式系统中的数据库设计,要注意哪些方面;常见的数据库调优策略有哪些。
Canal[kə’næl]是由Alibaba开发的数据同步中间件,译为水道/管道/沟渠,通过解析MySQL数据库增量日志,提供数据订阅和消费,主要使用场景:创建数据库镜像、数据库实时备份、索引构建和实时维护、按需刷新业务cache、按业务逻辑需要处理增量数据、同步构建其他数据源。相比MySQL本身的主从机制,有下面几点优势:让架构更灵活,多机房同步比较简单;异构表之间也可以同步,可以控制不同步DDL以免出现数据丢失和不一致;Canal可以实现一个表一线程,多个表多线程的同步,速度更快。
Elasticsearch是一个基于Lucene库的搜索引擎。它提供了一个分布式、支持多租户的全文搜索引擎,具有HTTP Web接口和无模式JSON文档。本文的主要内容是使用docker安装Elasticsearch 8.x,介绍了基本的docker命令。
说说数据库的事务是什么;数据库事务有哪几种隔离级别;Spring事务的实现方式和原理;Spring的Transactional注解什么情况会失效
数据库读写分离的目的是什么;读写分离会带来什么问题?如何解决;MySQL主从复制的原理清楚吗;读写分离具体怎么实施呢
你们的项目为什么要分库分表;具体怎么实施的,遇到了哪些问题;详细说说不停机部署上线怎么做的;Canal的原理你清楚吗?
最近负责的项目主要采用阿里云数据库MySQL,最近频繁出现慢SQL告警,执行时间最长的竟然高达5分钟。导出日志后分析,主要原因竟然是没有命中索引和没有分页处理。其实这是非常低级的错误,我不禁后背一凉,团队成员的技术水平亟待提高啊。