MyBatis很简单的

简介: 面试

什么是MyBatis?

答:MyBatis是一个可以自定义SQL、存储过程和高级映射的持久层框架。

500.Mybatis是如何进行分页的?分页插件的原理是什么?

答:1)Mybatis使用RowBounds对象进行分页,也可以直接编写sql实现分页,也可以使用Mybatis的分页插件。

2)分页插件的原理:实现Mybatis提供的接口,实现自定义插件,在插件的拦截方法内拦截待执行的sql,然后重写sql。

举例:select * from student,拦截sql后重写为:select t.* from (select * from student)t limit 0,10


MyBatis与Hibernate有哪些不同?

答:1)Mybatis和hibernate不同,它不完全是一个ORM框架,因为MyBatis需要程序员自己编写Sql语句,不过mybatis可以通过XML或注解方式灵活配置要运行的sql语句,并将java对象和sql语句映射生成最终执行的sql,最后将sql执行的结果再映射生成java对象。

2)Mybatis学习门槛低,简单易学,程序员直接编写原生态sql,可严格控制sql执行性能,灵活度高,非常适合对关系数据模型要求不高的软件开发,例如互联网软件、企业运营类软件等,因为这类软件需求变化频繁,一但需求变化要求成果输出迅速。但是灵活的前提是mybatis无法做到数据库无关性,如果需要实现支持多种数据库的软件则需要自定义多套sql映射文件,工作量大。

3)Hibernate对象/关系映射能力强,数据库无关性好,对于关系模型要求高的软件(例如需求固定的定制化软件)如果用hibernate开发可以节省很多代码,提高效率。但是Hibernate的缺点是学习门槛高,要精通门槛更高,而且怎么设计O/R映射,在性能和对象模型之间如何权衡,以及怎样用好Hibernate需要具有很强的经验和能力才行。

总之,按照用户的需求在有限的资源环境下只要能做出维护性、扩展性良好的软件架构都是好架构,所以框架只有适合才是最好。

相关文章
|
安全 数据建模 网络安全
市面上有那麽多的SSL证书,该如何选择、免费or收费?
免费SSL证书和收费SSL证书之间的主要区别在于验证级别和额外特性。虽然收费证书提供更多的验证层次和特殊功能,但免费证书对于一般网站来说已经足够,并且提供了基本的数据加密保护。选择使用哪种证书取决于您的网站类型和安全需求。
375 0
市面上有那麽多的SSL证书,该如何选择、免费or收费?
|
Devops jenkins Java
【devops】六、CI、CD入门操作
【devops】六、CI、CD入门操作
314 0
|
运维 监控 数据可视化
ARMS应用监控
【8月更文挑战第25天】
429 1
|
存储 安全 API
VFIO【ChatGPT】
VFIO【ChatGPT】
|
前端开发 Go
前端量子纠缠 效果炸裂 multipleWindow3dScene
这篇文章介绍了一个前端三维窗口管理器项目,该项目通过Three.js库创建了一种量子纠缠效果的3D视窗场景,并提供了项目的GitHub地址、运行方法和部分关键源码。
前端量子纠缠 效果炸裂 multipleWindow3dScene
|
安全 网络协议
SIP 协议的主要功能
【8月更文挑战第24天】
700 0
|
缓存 关系型数据库 MySQL
分享一个实用的MySQL一键巡检脚本
分享一个实用的MySQL一键巡检脚本
315 0
|
存储 数据可视化 安全
对象存储OSS产品常见问题之有几十亿个txt文件,单个4kb,使用oss如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
699 11
|
Kubernetes 应用服务中间件 PHP
k8s网络通信原理
k8s网络通信原理
432 0
|
Kubernetes Docker 索引
k8s+log-pilot日志收集
log-pilot可以从dockerlog-pilot主机收集日志并将它们发送到您的集中式日志系统。
695 0

热门文章

最新文章