MyBatis自学(1):MyBatis概述

 2023-09-19 阅读 28 评论 0

摘要:  MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。   MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了

  MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。

  MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJO映射成数据库中的记录。

MySQL教程、  MyBatis底层实现技术细节:xml解析 + 反射 + jdk动态代理

  首先我们来说说为什么要使用jdk动态代理?

  传统的开发方式:

  1.  接口定义业务方法。
  2.  实现类实现业务方法。
  3.  业务逻辑里实例化实现类来完成业务操作。

maven java,  缺点:高耦合度。

  Mybatis的方式:

  1.  开发者只需要创建接口,定义业务方法,不需要接口实现类。
  2.  具体的业务操作通过配置xml来完成。

  问题:我们知道Java是面向对象的编程语言,程序在运行时执行业务方法,必须要有实例化的对象。但是,接口是不能被实例化的,而且也没有接口的实现类,那么此时这个对象从哪里来呢?

MySQL菜鸟教程,  答案:程序在运行时,动态创建代理对象。jdk动态代理,运行时结合接口和mapper.xml来动态创建一个代理对象,程序调用该代理对象的方法来完成业务操作。

  问题:如何实现jdk动态代理?

  1.  创建一个类,实现InvocationHandler接口,该类就具备了创建动态代理对象的功能。
  2.  自定义getInstance方法:入参为目标对象,通过Proxy.newProxyInstance方法创建代理对象,并返回。
  3.  实现接口的invoke方法,通过反射机制完成业务逻辑代码。

转载于:https://www.cnblogs.com/yaokaizhi/p/9559483.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/78617.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息