JAVA的三大框架之Mybatis复习,理解Mybatis原理,Mybatis实践案例。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

今天没什么事情,复习了一下Mybatis框架,不知道自己以前在学校怎么弄的,这么简单的基础框架都弄不明白,到今天为止,才感觉到Mybatis框架原来是这样的,话不多说,我们这就开始。


Mybatis

一、Mybatis是什么?

MyBatis的前身就是iBatis,iBatis本是由Clinton Begin开发,后来捐给Apache基金会,成立了iBatis开源项目。2010年5月该项目由Apahce基金会迁移到了Google Code,并且改名为MyBatis。
MyBatis是一个数据持久层(ORM)框架。把实体类和SQL语句之间建立了映射关系,是一种半自动化的ORM实现。

二、ORM简介

对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。如今已有很多免费和付费的ORM产品,而有些程序员更倾向于创建自己的ORM工具。

三、数据持久化

在JAVA中数据库的存储技术分为以下的几类:

  1. JDBC直接访问数据库
  2. JDO技术
  3. 第三方O/R工具,如Hibernate,Mybatis等
  4. JDBC是JAVA访问数据库的基石,JDO,Hibernate等只是封装了JDBC。持久化技术封装了数据访问的细节,为大部分业务逻辑提供面向对象的API

四 、Mybatis为我们做了些什么?

代码如下:
在这里插入图片描述
MyBatis 就是将上面这几行代码分解包装:
前两行是对数据库的数据源的管理包括事务管理,
3、4 两行MyBatis通过配置文件来管理 SQL 以及输入参数的映射,
6、7、8 行MyBatis获取返回结果到 Java 对象的映射,也是通过配置文件管理
Mybatis的优点和优势:
减少一半以上的不必要的代码量
最简单的持久层框架
架构性能很强
SQL代码从程序当中,分离,可重复利用
增加了项目的分工,可移植性。

五. Mybatis的工作过程

1.加载全局配置文件(Mybatis-config.xml),加载数据源和mapper映射文件等,解析配置文件,Mybatis基于XMl文件生成一个个的MappedStatement对象(对应着SQL里面的<select / update / delete / insert>标签项)
2. SqlSessionFactoryBuilder通过configure 对象生成SqlSessionFactory用来开启SqlSession.
3. SqlSession对象完成和数据库的交互。

六. Mybatis工具类实现

如下面代码所示,这里的代码我也在Github上面也是放了的,可以关注我的Github账号,下载源代码。链接为:
https://github.com/Ernestsudo/mybatis.git

public class MyBatisUtils {
    
    
    private static SqlSessionFactory factory= null;
    static {
    
    
        String config = "mybatis.xml"; //需要和你的项目中的文件名一样
        try {
    
    
            InputStream in = Resources.getResourceAsStream(config);
             //创建SqlSessionFactory对象,使用SqlSessionFactoryBuild
            SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
            factory = builder.build(in);

        } catch (IOException e) {
    
    
            e.printStackTrace();
        }
    }
    //获取SqlSession方法
    public static SqlSession getSqlSession(){
    
    
        SqlSession sqlSession = null;
        if (factory != null){
    
    
            sqlSession = factory.openSession(); // 非自动提交事务
        }
        return sqlSession;
    }
}

总结

我感觉这个Mybatis框架想要熟悉的话,还是需要自己多多实践,敲一下实现的代码,这样对自己的理解起来还是很有帮助的,原理也还是很简单,基本上也就是操作该对象的SQL数据库的XML文件。

猜你喜欢

转载自blog.csdn.net/qq_41837249/article/details/113768954