java实习生面试MyBatis篇

本文深入探讨了MyBatis的原理与应用,包括其作为半自动ORM框架的角色,三层结构,优缺点,以及与JDBC的对比。还讨论了ORM的概念、MyBatis的编程步骤、Mapper接口的工作原理、动态SQL的运用以及分页和插件机制。此外,解释了MyBatis如何处理对象关系映射,执行批处理,以及与Spring的集成。
摘要由CSDN通过智能技术生成

谈谈 MyBatis
Mybatis 是一个半自动化的 ORM 框架,它对 jdbc 的操作数据库的过程进行封装,使得开发
者只需要专注于 SQL 语句本身,而不用去关心注册驱动,创建 connection 等,Mybatis 通过 xml
文件配置或者注解的方式将要执行的各种 statement 配置起来,并通过 java 对象和 statement 中的
sql 进行映射成最终执行的 sql 语句,最后由 Mybatis 框架执行 sql 并将结果映射成 java 对象并返
回。每个 MyBatis 应用程序主要都是使用 SqlSessionFactory 实例的,一个 SqlSessionFactory 实例
可以通过 SqlSessionFactoryBuilder 获得。SqlSessionFactoryBuilder 可以从一个 xml 配置文件或者
一个预定义的配置类的实例获得。
Mybatis 分为三层
(1)API 接口层:提供给外部使用的接口 API
(2)数据处理层:负责具体的 SQL
(3)基础支撑层:负责最基础的功能支撑,如连接管理,事务管理,配置加载和缓存处。

Mybatis 的优点
基于 SQL 语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL
写在 XML 里,解除 sql 与程序代码的耦合,便于统一管理;提供 XML 标签,支持编写动
态 SQL 语句,并可重用。
与 JDBC 相比,减少了 50%以上的代码量,消除了 JDBC 大量冗余的代码,不需要手动开关
连接;
很好的与各种数据库兼容(因为 MyBatis 使用 JDBC 来连接数据库,所以只要 JDBC 支持的
数据库 MyBatis 都支持)。
能够与 Spring 很好的集成;
提供映射标签,支持对象与数据库的 ORM 字段关系映射;提供对象关系映射标签,支持对
象关系组件维护。

Mybatis 的缺点

  1. Sql 语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写 Sql 语句的功底有
    一定要求。
  2. 对性能的要求很高,或者需求变化较多的项目,如互联网项目,MyBatis 将是不错的选择。

什么是 ORM?
对象关系映射(Object Relational Mapping,简称 ORM)是通过使用描述对象和数据库之间
映射的元数据,将面向对象语言程序中的对象自动持久化到关系数据库中。常见的 ORM 框架有:
Hibernate、TopLink、Castor JDO、Apache OJB、MyBatis 等。

JDBC 编程有哪些不足乊处,MyBatis 是如何解决这些问题的?

  1. 数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池
    可解决此问题。解决:在 SqlMapConfig.xml 中配置数据链接池,使用连接池管理数据库链
    接。
  2. Sql 语句写在代码中造成代码不易维护,实际应用 sql 变化的可能较大,sql 变动需要改变
    java 代码。解决:将 Sql 语句配置在 XXXXmapper.xml 文件中与 java 代码分离
  3. 向 sql 语句传参数麻烦,因为 sql 语句的 where 条件不一定,可能多也可能少,占位符需
    要和参数一一对应。解决: Mybatis 自动将 java 对象映射至 sql 语句。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值