MyBtatis框架使用

本文详细介绍了MyBatis框架,包括其封装JDBC操作、反射技术、ORM映射、灵活性、SQL语句的动态编写、缓存机制、延迟加载、一对一和一对多操作方式,以及其在不同场景下的适用性。MyBatis的优点在于灵活性高、减少代码量,但SQL编写工作量大,依赖数据库。适合性能要求高、需求变化多的项目。文章还讨论了其与JDBC的区别,以及在实际开发中的使用技巧和注意事项。
摘要由CSDN通过智能技术生成

标题 MyBtatis框架使用

一.MyBatis 简介:  封装 JDBC 操作,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。
 利用反射打通 java 类与 SQL 语句之间的相互转换。
 可以使用单的 XML或注解用于配置和原始映射,将接口和 Java的 POJO(Plain Old Java
Objects,普通的 Java 对象)映射成数据库中的记录。
 其是一个半自简动 ORM(Object Relation Mapping 对象关系映射)框架 Hibernant 是
全自动的。
 个人总结:MyBatis 是支持定制化 SQL,存储过程以及高级映射的优秀的持久层框架。
二.ORM 介绍:
 因为要满足 java 对象得到持久化(即保存)的需求。
 ORM:(Object/Relation Mapping):对象,关系映射。
 ORM 的实现思想:
 将关系数据库中的记录映射成为对象,以对象的形式展现,程序员可以把数据库的
操作转为对象的操作;
在这里插入图片描述
三.MyBatis 的优点:
 基于 SQL 语句编程,相当灵活。不会对应用程序或者数据库的现有设置造成任何影响。
 SQL 语句写在 XML 中,减少 SQL 语句与程序代码的耦合,便于统一管理。
 提供 XML 标签,支持编写动态 SQL 语句,并可重用。
 与 JDBC 相比减少了 50%的代码量,消除的 JDBC 大量冗余的代码,不需要手动开关连
接。
 很好的与各种数据库兼容(因为 MyBatis 是使用 JDBC 连接数据,所以只要 JDBC 支持
的数据库 MyBatis 都支持)。
 能够与 Spring 很好的集成。
 提供映射标签,支持对象与数据库的 ORM 字段关系映射。
 提供对象映射标签,支持对象关系组件维护。
 对于开发人员而言,核心 sql 发送需要自己优化。
 对于程序来说,sql 和 java 代码分开,功能便捷清洗,一个专注业务,一个专注数据。
四.MyBatis 的缺点:
 SQL 语句的编写工作量较大,尤其当字段多,关联表多时,对开发人员编写 SQL 语句
的功底有一定 的要求。
 SQL 语句依赖于数据库,导致数据库一致性差,不能随意更换数据库。
五.MyBatis 框架的使用场合:
 MyBatis 专注于 SQL 本身,是一个足够灵活的 DAO 层解决方案。
 对性能的要求性很高,或者需求变化较多的项目,如互联网项目,MyBatis 是个不错的
选择。
六.MyBatis 中#{}与${}的区别:  #{} :是预编译处理
 MyBatis 在处理#{}时会将 SQL 中的#{}替换为?号,调用 PreparedStatemen(预编译
语句对象)t 的 set 方法来赋值。
KaTeX parse error: Unexpected character: '' at position 13: {}: 是字符串替换。 ̲ MyBatis 在处理{}时,就是把${}的值替换成变量的值。
 使用#{}可以有效的防止 SQL 注入,提高系统安全性。
七.MyBatis 缓存机制:
 作用:  提高应用查询效率。
 查找顺序:  二级开启从二级找,二级缓存未开启从一级缓存(Map:返回类型 resuleMap)查
找。
 一级缓存特点:  生命周期:MyBatis 的生命周期和 SqlSession 一致。
 同一个会话(SqlSession)默认开启,基于内存储存,关闭会话一级缓存数据被清除或
者显示调用清空缓存方法。
 使用:
 在 MyBatis 配置文件中设置(mytatis-config.xml)

 SESSION:默认开启一级缓存。这种情况下会缓存一个会话中执行的所有查询
 STATEMENT: 本地会话仅用在语句执行上,对相同 SqlSession 的不同调用将
不会共享数据。
 个人理解:①如果在一级缓存开启时,修改了数据库中的值,在执行相同查询,
一级缓存失效,会在次向数据发发送一次查询。
 详情博客地址:https://www.cnblogs.com/zhuzhu-you/p/13888596.html
 二级缓存特点:  同一个 namespace,进程缓存,基于内存+硬盘,默认不开启,需要手动开启。  使用:
 在 MyBatis 配置文件中设置(mytatis-config.xml)

 详情博客地址:https://www.cnblogs.com/zhuzhu-you/p/13888596.html
八.MyBatis 延迟加载:
 MyBatis 仅支持 association 关联对象和 collection 关联集合对象的延迟加载,association
指的是一对一,collection 指的是一对多查询。在 MyBatis 配置文件中,可以配置是否
请用延迟加载 lazyLoadingEnabled=true|false。
 延迟加载:在真正使用数据的时候才发起查询,不用的时候不查询关联的数据,延迟加
载又叫按需查询(懒加载);
 立即加载:不管用不用,只要一调用方法,马上发起查询。  使用场景:在对应的四种表关系中,一对多、多对多通常情况下采用延迟加载,多对一、
一对一通常情况下采用立即加载。
 详情博客地址:https://www.cnblogs.com/zhuzhu-you/p/13892794.html
九.MyBatis 实行一对一的操作方式
 联合查询
 几个表联合查询,只查询一次,通过在 resuleMap 里面配置 association 节点配置
一对一的类就可以完成。
 嵌套查询
 先查一个表,根据这个表里面的外键 id,再去另一个表里面查询数据,也是通过
association 配置,但另一个表的查询通过 select 属性配置。
十.MyBatis 实行一对多的操作方式
 有联合查询和嵌套查询
 联合查询
 联合查询是几个表联合查询,只查询一次,通过在 resultMap 里面配置
collection 标签配置一对多的类就可以完成。
 嵌套查询
 嵌套查询是先查一个表,根据这个表里面给过的外键 id,再去另一个表里查
询数据,也是通过配置 collection,当另外一个表查询通过 s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值