2021-11-14

MyBatis学习笔记

 

1.Mybatis 简介 MyBatis 本是 apache 的一个开源项目 iBatis , 2010 年这个项目由 apache software foundation 迁移到了 google code,并且改名为 MyBatis 。 2013 年 11 月迁移到 Github 。 iBATIS 一词来源于 “internet” 和 “abatis” 的组合,是一个基于 Java 的 持久层 框架。 iBATIS 提供的持久层框 架包括SQL Maps 和 Data Access Objects ( DAOs )。 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL 、存储过程以及高级映射。 MyBatis 避免了几乎 所有的 JDBC 代码和手动设置参数以及获取结果集。 MyBatis 可以使用 简单的 XML 注解来配置 和映 射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object, 普通的 Java 对象 ) 射成数据库中的 记录。可以根据配置将数据库的数据和Java对象进行映射关联。 1.1. 特点 简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个 jar 文件 + 配置几个 sql 映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。 灵活: mybatis 不会对应用程序或者数据库的现有设计强加任何影响。 sql 写在 xml 里,便于统一 管理和优化。通过 sql 语句可以满足操作数据库的所有需求。 解除 sql 与程序代码的耦合:通过提供 DAO 层,将业务逻辑和数据访问逻辑分离,使系统的设计更 清晰,更易维护,更易单元测试。 sql 和代码的分离,提高了可维护性。 提供映射标签,支持对象与数据库的 orm 字段关系映射 1.2.ORM ORM 是 Object Relation Mapping 的缩写。翻译过来:对象关系映射。 对象关系映射是指,在 Java 程序中,进行数据访问时, Java 程序一般都会为数据中数据创建实体类。由 于,数据库中一般使用表存储数据,而创建的实体类,里面包含的都是表的属性字段。即一个实体类对 应一张表,表中的每条数据,则又是实体类的一个具体对象。这种映射关系,就被称之为 ORM 映射。 2021-11-14 在 ORM 框架中,崇尚以对象的模式操作数据。数据和对象其实类似于进行绑定,当修改对象时,自然修 改具体的实际数据。最典型的ORM 框架: Hibernate 。无需编写任何 SQL 语句,可以实现对数据库的意CRUD 操作。 但是这种方式,效率比较低,因为实现原理,是框架自身,根据需要操作的数据库,及目前用户需求的 API自动的生成 SQL 语句。这种方式,降低对开发人员的数据库的要求,但是 SQL 是程序生成,无法干 预,即无法进行优化。 个人不太喜欢Hibernate 框架,原因:它太强大了。它都能帮你完成。比较笨重。 1.3. 市面主流的 ORM 框架: Hibernate : 全自动的 ORM 框架。封装严格。 Mybatis: 半自动的 ORM 框架。半封装,可以更好的自定义。 Spring DATA JPA: 类似于 Hibernate 。 注意: 市面上 ORM 框架很多,但是最受程序员推崇的是 Mybatis 。因为 Hibernate 在处理数据量,频率高的业 务场景时,存在瓶颈,且不易突破。而Mybatis 可以认为定制 SQL 语句,可以更好的优化。且轻便,只 需要导入一个jar 包即可。 2. 框架出现的意义 2.1. 什么是开发框架? LayUI 前端开发框架, JDK : Java 最核心最强大的开发框架。 框架:框架就是按照某种需求,搭建的框子。后续相关的操作,都在框子范围中进行。 开发框架:为了更好的进行开发,对程序进行封装和规范,使使用者,在框架中,可以更好的进行开 发。 2.2. 开发框架的意义? 框架不一定提高了开发效率,也不一定提高了程序的性能。但是,框架本身作为一个规范,具有的统一 的API 。 使用框架进行开发,那么就必须遵循框架的规范。这样,在一定程度上,统一了代码的结构和开发规 范。便于维护。 例如: 数据库操作。 BaseDao : 每个人的 BaseDao 的标准不一样。这样虽然都能完成对数据库的数据 操作。但是具体的实际过程是存在很大差异,不便于维护。代码标准不一样,作为人员流动性比较大的 行业,对于新人而言,可能需要重新学习,耗费时间和资源。且没有太大的价值。 并且,越是庞大的项目,规范就越是重要。使用框架的必要性也越重。 3.Mybatis 框架的使用 官方中文文档: https://mybatis.org/mybatis-3/zh/index.html
上一篇:django-orm聚合查询和原生数据库查询


下一篇:sqlalchemy