MyBatis
文章平均质量分 84
丿涛哥哥
站得更高才能看得更远。努力吧!少年!
展开
-
简单实现自定义持久层框架,手写MyBatis实现基础功能
简单实现自定义持久层框架,手写MyBatis实现基础功能源码请点击–>手写持久层框架源码1、 分析JDBC操作问题public static void main(String[] args) { Connection connection = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null; try { // 加载数据库驱动 Class.forName("c原创 2021-06-04 14:14:09 · 172 阅读 · 1 评论 -
Mybatis源码剖析:延迟加载源码剖析
Mybatis源码剖析:延迟加载源码剖析1、什么是延迟加载?在开发过程中很多时候我们并不需要总是在加载用户信息时就一定要加载他的订单信息。此时就是我们所说的延迟加载。举个栗子* 在一对多中,当我们有一个用户,它有个100个订单 在查询用户的时候,要不要把关联的订单查出来? 在查询订单的时候,要不要把关联的用户查出来? * 回答 在查询用户时,用户下的订单应该是,什么时候用,什么时候查询。 在查询订单时,订单所属的用户信息应该是随着订单一起查询出来。延迟加载就是在需要用到数据时才进行原创 2021-05-27 16:56:52 · 667 阅读 · 0 评论 -
Mybatis源码剖析:二级缓存源码剖析
Mybatis源码剖析:二级缓存源码剖析二级缓存构建在一级缓存之上,在收到查询请求时,MyBatis 首先会查询二级缓存,若二级缓存未命中,再去查询一级缓存,一级缓存没有,再查询数据库。二级缓存------》 一级缓存------》数据库与一级缓存不同,二级缓存和具体的命名空间绑定,一个Mapper中有一个Cache,相同Mapper中的 MappedStatement共用一个Cache,一级缓存则是和 SqlSession 绑定。1、 启用二级缓存分为三步:1、开启全局二级缓存配置:<原创 2021-05-26 01:32:33 · 460 阅读 · 1 评论 -
Mybatis源码剖析:Mapper代理方式
Mybatis源码剖析:Mapper代理方式回顾下写法:public static void main(String[] args) { ... //前三步都相同 InputStream inputStream = Resources.getResourceAsStream("sqlMapConfig.xml"); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);原创 2021-05-26 00:18:44 · 160 阅读 · 0 评论 -
Mybatis源码剖析:传统开发方式源码剖析
Mybatis源码剖析:传统开发方式源码剖析1、 源码剖析-初始化Inputstream inputstream = Resources.getResourceAsStream("mybatisconfig.xml");//这一行代码正是初始化工作的开始。SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);进入源码分析:// 1.我们最初调用的buildpublic SqlSessionF原创 2021-05-25 22:37:20 · 102 阅读 · 2 评论 -
Mybatis架构原理:主要构件及其相互关系
Mybatis架构原理:主要构件及其相互关系1、架构设计我们把Mybatis的功能架构分为三层:API接口层:提供给外部使用的接口 API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。MyBatis和数据库的交互有两种方式:使用传统的MyBatis提供的API使用Mapper代理的方式数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。基础支撑原创 2021-05-25 19:13:40 · 234 阅读 · 2 评论 -
Mybatis插件:自定义插件、分页及通用Mapper
Mybatis插件:自定义插件、分页及通用Mapper1、 插件简介一般情况下,开源框架都会提供插件或其他形式的拓展点,供开发者自行拓展。这样的好处是显而易见 的,一是增加了框架的灵活性。二是开发者可以结合实际需求,对框架进行拓展,使其能够更好的工 作。以MyBatis为例,我们可基于MyBatis插件机制实现分页、分表,监控等功能。由于插件和业务无关,业务也无法感知插件的存在。因此可以无感植入插件,在无形中增强功能。2、 Mybatis插件介绍Mybatis作为一个应用广泛的优秀的 ORM 开源框原创 2021-05-25 18:24:08 · 434 阅读 · 1 评论 -
Mybatis的一级缓存与二级缓存
Mybatis的一级缓存与二级缓存缓存就是内存中的数据,常常来自对数据库查询结果的保存,使用缓存,我们可以避免频繁的与数据库 进行交互,进而提高响应速度。Mybatis也提供了对缓存的支持,分为一级缓存和二级缓存,可以通过下图来理解:一级缓存是SqlSession级别的缓存。在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据。不同的sqlSession 之间的缓存数据区域(HashMap)是互相不影响的。二级缓存是mapper级别的缓存,多个原创 2021-05-25 10:10:11 · 1225 阅读 · 1 评论 -
Mybatis注解开发:使用注解实现一对一、一对多、多对多查询
Mybatis注解开发:使用注解实现一对一、一对多、多对多查询1、 MyBatis的常用注解这几年来注解开发越来越流行,Mybatis也可以使用注解开发方式,这样我们就可以减少编写Mapper 映射文件了。我们先围绕一些基本的CRUD来学习,再学习复杂映射多表操作。@Insert:实现新增@Update:实现更新@Delete:实现删除@Select:实现查询@Result:实现结果集封装@Results:可以与@Result 一起使用,封装多个结果集@One:实现一对一结果集封装@Ma原创 2021-05-24 18:34:20 · 12045 阅读 · 14 评论 -
Mybatis复杂映射开发:一对一、一对多、多对多查询
Mybatis复杂映射开发:一对一、一对多、多对多查询1、 一对一查询1.1、 一对一查询的模型用户表和订单表的关系为,一个用户有多个订单,一个订单只从属于一个用户一对一查询的需求:查询一个订单,与此同时查询出该订单所属的用户1.2、一对一查询的语句对应的sql语句:select * from orders o,user u where o.uid=u.id;查询的结果如下:1.3、 创建Order和User实体public class Order { private in原创 2021-05-21 15:59:39 · 905 阅读 · 6 评论 -
Mybatis配置文件深入:核心配置文件和映射配置文件
Mybatis配置文件深入:核心配置文件和映射配置文件1、 核心配置文件SqlMapConfig.xml1.1、 MyBatis核心配置文件层级关系1.2、 MyBatis常用配置解析1、environments标签数据库环境的配置,支持多环境配置其中,事务管理器(transactionManager)类型有两种:JDBC:这个配置就是直接使用了JDBC 的提交和回滚设置,它依赖于从数据源得到的连接来管理事务作 用域。MANAGED:这个配置几乎没做什么。它从来不提交或回滚一个连接,而原创 2021-05-21 15:14:47 · 720 阅读 · 0 评论 -
MyBatis基本应用:映射文件及Dao层实现
MyBatis基本应用:映射文件及Dao层实现1、 MyBatis的映射文件概述1.1、 入门核心配置文件分析MyBatis核心配置文件层级关系:MyBatis常用配置解析1、environments标签数据库环境的配置,支持多环境配置其中,事务管理器(transactionManager)类型有两种:JDBC:这个配置就是直接使用了JDBC 的提交和回滚设置,它依赖于从数据源得到的连接来管理事务作 用域。MANAGED:这个配置几乎没做什么。它从来不提交或回滚一个连接,而是让容器原创 2021-05-21 10:54:37 · 819 阅读 · 1 评论 -
Mybatis基本应用:增删改查
Mybatis基本应用:增删改查、配置文件及Dao层实现1、 快速入门MyBatis官网地址:http://www.mybatis.org/mybatis-3/1.1、 开发步骤:添加MyBatis的坐标创建user数据表编写User实体类编写映射文件UserMapper.xml编写核心文件SqlMapConfig.xml编写测试类1.2、 环境搭建:1、导入MyBatis的坐标和其他相关坐标<properties> <project.build.so原创 2021-05-21 10:44:53 · 178 阅读 · 0 评论 -
Mybatis相关概念
Mybatis相关概念1.1、对象/关系数据库映射(ORM)ORM全称Object/Relation Mapping:表示对象-关系映射的缩写。ORM完成面向对象的编程语言到关系数据库的映射。当ORM框架完成映射后,程序员既可以利用面向对象程序设计语言的简单易用性,又可以利用关系数据库的技术优势。ORM把关系数据库包装成面向对象的模型。ORM框架是面向对象设计语言与关系数据库发展不同步时的中间解决方案。采用ORM框架 后,应用程序不再直接访问底层数据库,而是以面向对象的放松来操作持久化对象,而ORM框原创 2021-05-20 16:23:14 · 130 阅读 · 0 评论