首页 > 其他 > 详细

自定义Mybatis框架实现

时间:2020-12-15 00:05:54      阅读:22      评论:0      收藏:0      [点我收藏+]
本章将开启mybatis系列

mybatis介绍

mybatis 是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使开发者只需要关注 sql 语句本身, 而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。

mybatis 通过 xml 或注解的方式将要执行的各种 statement 配置起来,并通过 java 对象和 statement 中 sql 的动态参数进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql 并将结果映射为 java 对象并 返回。

采用 ORM 思想解决了实体和数据库映射的问题,对 jdbc 进行了封装,屏蔽了 jdbc api 底层访问细节,使我 们不用与 jdbc api 打交道,就可以完成对数据库的持久化操作。 为了我们能够更好掌握框架运行的内部过程,并且有更好的体验,

下面我们将从自定义 Mybatis 框架开始来 学习框架。此时我们将会体验框架从无到有的过程体验,也能够很好的综合前面阶段所学的基础。

三层架构

技术分享图片

 

 持久层总图:

技术分享图片

 

 

入门第一个实例:

测试类主方法:

    public static void main(String[] args) throws IOException {
        //1.读取配置文件
        InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");  //读取配置文件的常用方法有两种:第一,使用类加载器;第二,使用servletContext对象的getRealPath()方法
        //2.创建 SqlSessionFactory 的构建者对象
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();//创建工厂mybatis使用了构建者模式
        //3.使用构建者创建工厂对象 SqlSessionFactory
        SqlSessionFactory factory = builder.build(in);//builder就是构建者        构建者模式:把对像的创建细节隐藏
        //4.使用 SqlSessionFactory 生产 SqlSession 对象
        SqlSession session = factory.openSession();  //生产SqlSession使用了工厂模式,工厂模式的优势:解耦(降低类间的依赖关系)
        //5.使用 SqlSession 创建 dao 接口的代理对象
        IUserDao userDao = session.getMapper(IUserDao.class);  //代理模式:不修改源码的基础上对已有的方法增强
        //6.使用代理对象执行查询所有方法
        List<User> users = userDao.findAll();
        for (User user : users){
            System.out.println(user);
        }
        //7.释放资源
        session.close();
        in.close();
    }

mybatis  mapper配置文件的要求

技术分享图片

 mybatis分析技术分享图片自定义mybatis框架:

1.涉及知识点:

我们将使用前面所学的基础知识来构建一个属于自己的持久层框架,将会涉及到的一些知识点:工厂模式 (Factory 工厂模式)、构造者模式(Builder 模式)、代理模式,反射,自定义注解,注解的反射,xml 解析, 数据库元数据,元数据的反射等。

2. 自定义Mybatis的分析:

mybatis在使用代理dao的方式实现增删改查时做什么事呢?

只有两件事:第一,创建代理对象; 第二,在代理对象中调用selectList

数据库配置文件:-------->  解析配置文件,此处用dom4j解析xml技术

技术分享图片

 

 下一节将是自定义mybatis框架代码实现,敬请请期待~

 

自定义Mybatis框架实现

原文:https://www.cnblogs.com/wxhao/p/14136185.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!