zoukankan      html  css  js  c++  java
  • 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,然后使用注解实现映射,然后获取对象.

    @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语句区分)的,必须要洗完了手动晾干,如果使用全自动的洗衣机就不合适了,并且耗电更高(对数据的压力更大).

     

  • 相关阅读:
    mysql distinct 去重
    基于visual Studio2013解决面试题之1004最长等差数列
    基于visual Studio2013解决面试题之1003字符串逆序
    基于visual Studio2013解决面试题之1002公共子串
    基于visual Studio2013解决面试题之1001去除数字
    基于visual Studio2013解决面试题之0909移动星号
    基于visual Studio2013解决面试题之0908最大连续数字串
    基于visual Studio2013解决面试题之0907大数乘法
    基于visual Studio2013解决面试题之0905子串数量
    基于visual Studio2013解决面试题之0902内存拷贝
  • 原文地址:https://www.cnblogs.com/xiaomaomao/p/13645846.html
Copyright © 2011-2022 走看看