Mybatis01__Mybatis简介

一、Mybatis简介

1、MyBatis;和数据库进行交互;持久化层框架(SQL映射框架)
  1、从原始的JDBC----dbutils(QueryRunner)-------JdbcTemplate----xxx;这些与数据库进行交互的工作单元称为工具.
    工具:一些功能的简单封装.
    框架:某个领域的整体解决方案;缓存,考虑异常处理问题,考虑部分字段映射问题.
  2、不使用原生JDBC的原因
    1、麻烦.(注册驱动-获取连接-书写sql语句--获得sql语句执行者statement对象--封装结果).
    2、sql语句是硬编码在程序中的;耦合(数据库层的代码和java代码耦合).

 

2、Hibernate-数据库交互的ORM框架(ORM:Object Relation Mapping 对象关系映射) Hbiernate是全自动框架
  1、创建好javaBean,然后使用注解实现映射,然后获取对象.

1
2
3
4
5
6
@Table("t_employee")
class Employee{
    private Integer empId;
    private String empName;
}
  session.get("1",Employe.class);

  2、 Hibernate缺点:
    1、定制sql,(SQL语句是非常关键的,我们往往希望自己写SQL,例如很多表之间的关联查询,我们只需要很少的一些字段,如果交给Hibernate去做,它没有那么智能,会去查询很多表,对数据库的负担很大).
    2、HQL,(虽然Hibernate有自己特有的SQL语法HQL,但是我们要熟悉另外的一门SQL会加大学习成本,学习难度高).
    3、全映射框架,部分字段映射很难;能做.(Hibernate是全映射框架,例如很多表之间的关联查询,我们只需要很少的一些字段,如果交给Hibernate去做,它没有那么智能,会去查询很多表,并且把表中所有的数据都查询出来,对数据库的负担很大,它也可以实现部分字段映射,但是你要知道Hibernate的底层原理,以及工作机制,学习难度很大).

 

3、通过总结传统的框架和Hibernate全自动框架的优缺点,我们迫切的需要一款框架满足如下要求
  1、将重要的步骤(SQL语句)抽取出来,使得SQL和java代码解耦合,也便于后期的维护.  
  2、重要的步骤可以人工定制,其它步骤自动化.
  3、完全解决数据库的优化问题.

 

4、为了解决上述问题Mybatis就应运而生了 
  1、 Mybatis是一个轻量级的框架.
  2、 Mybatis底层就是对原生JDBC的一个简单封装.
  3、 既将java代码和sql语句分离出来了,还保留了自动化的功能,属于半自动化的持久层框架.

 
 
5、Hibernate和Mybatis之间的区别
  可以这么理解:将Hibernate比作全自动洗衣机,将Mybatis比作半自动的洗衣机;全自动洗衣机有各种各样的功能,但是有一些衣服是不能经过脱水、烘干操作(sql语句区分)的,必须要洗完了手动晾干,如果使用全自动的洗衣机就不合适了,并且耗电更高(对数据的压力更大).

 

 

 

 

 

posted @   变体精灵  阅读(182)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示