![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Mybatis
馒头太帅了
这个作者很懒,什么都没留下…
展开
-
Mybatis---学习过程---Mybatis架构原理之Mapper代理方式的getMapper方式以及invoke
Mybatis—学习过程—Mybatis架构原理之Mapper代理方式的getMapper方式1.无论是传统方式还是mapper代理方式,初始化的前三部都一样InputStream inputStream = Resources.getResourceAsStream("sqlMapConfig.xml");SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession sqlSessi原创 2020-08-03 00:46:46 · 146 阅读 · 0 评论 -
Mybatis---学习过程---Mybatis架构原理之executor执行原理
Mybatis—学习过程—Mybatis架构原理之executor执行原理1.继续进行源码中selectList中的步骤,进入executor.query()点击query方法,进入实现类BaseExecutor //此方法在SimpleExecutor的父类BaseExecutor中实现 @Override public <E> List<E> query(MappedStatement ms, Object parameter, RowBounds r原创 2020-08-02 17:23:25 · 124 阅读 · 0 评论 -
Mybatis---学习过程---Mybatis架构原理之sql语句执行流程
Mybatis—学习过程—Mybatis架构原理之sql语句执行流程1.简单介绍一下sqlSessionsqlSession是一个线程不安全的,并且sqlSession在调用方法执行的过程中最终会把这个任务委派给Executor2.简单介绍一下Executor3.执行完初始化后的第三步和第四步第三步:创建出DefaultSqlsession对象和executor对象// 3. 生产了DefaultSqlsession实例对象 设置了事务不自动提交 完成了executor对象的创建Sql原创 2020-08-02 16:47:48 · 105 阅读 · 0 评论 -
Mybatis---学习过程---Mybatis架构原理之初始化过程
Mybatis—学习过程—Mybatis架构原理之初始化过程1.传统方式和getMapper代理方式的前提代码方式都一样都要完成初始化操作2.初始化过程代码// 1. 读取配置文件,读成字节输入流,注意:现在还没解析InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");// 2. 解析配置文件,封装Configuration对象 创建DefaultSqlSessionFactory对象原创 2020-08-02 15:32:38 · 84 阅读 · 0 评论 -
Mybatis---学习过程---Mybatis架构原理之总体流程设计
Mybatis—学习过程—Mybatis架构原理原创 2020-08-02 10:55:14 · 69 阅读 · 0 评论 -
Mybatis---学习过程---Mybatis插件之通用mapper
Mybatis—学习过程—Mybatis插件之通用mapper1.什么是通用mapper2.使用步骤导入依赖<dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>3.1.2</version></dependency>Mybatis全局配置文件中的插件配置原创 2020-07-31 02:14:13 · 105 阅读 · 0 评论 -
Mybatis---学习过程---Mybatis插件之pageHelper分页插件
Mybatis—学习过程—Mybatis插件之pageHelper分页插件1.Mybatis第三方插件介绍2.开发步骤 引入pom依赖 ,pageHelper的坐标<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>3.7.5</version>原创 2020-07-31 01:35:41 · 93 阅读 · 0 评论 -
Mybatis---学习过程---Mybatis缓存之插件机制
Mybatis—学习过程—Mybatis缓存之插件机制1.什么是插件:可以理解为其他形式的拓展点2.Mybatis插件介绍:也就是说使用插件完成组件中的动态增强,底层执行的就是动态代理,也就是说这四大组件(四大对象)返回的并不是对应的原生对象,而是代理对象四大核心对象的关系图Executor:就是执行器,主要负责增删改查的行为StatementHandler:sql语法构建器,主要是完成sql语法的预编译ParamterHandler:参数处理器,用来设置参数ResultSetHand原创 2020-07-31 00:08:40 · 110 阅读 · 0 评论 -
Mybatis---学习过程---Mybatis缓存之使用redis实现二级缓存
Mybatis—学习过程—Mybatis缓存之使用redis实现二级缓存Mybatis自带的二级缓存适合单机结构。单机结构下,使用自带的二级缓存实现类即可在mapper.xml中会发现<cache></cache>的空的缓存标签,其实在里面可以配置<cachetype="org.apache.ibatis.cache.impl.PerpetualCache"></cache>而且Mybatis的二级缓存是基于PerpetualCache这个类实现的,原创 2020-07-30 13:30:25 · 271 阅读 · 0 评论 -
Mybatis---学习过程---Mybatis缓存之二级缓存
Mybatis—学习过程—Mybatis缓存之二级缓存1.什么是Mybatis二级缓存2.什么是Mybatis二级缓存图解由图可知,三个sqlSession都是要对同一个mapper进行操作,这三个sqlSession是共享当前这个Mapper二级缓存区域的流程sqlSession1最先进行查询,他在第一次进行查询的时候,也是会先来查询二级缓存区域,由于是一个,所以说二级缓存还是空的,所以查询不出来内容,所以会向数据库发起查询,并且把在数据库中查询出的数据存到二级缓存中一份sqlSess原创 2020-07-30 02:18:46 · 91 阅读 · 0 评论 -
Mybatis---学习过程---Mybatis缓存之一级缓存
Mybatis—学习过程—Mybatis缓存1.Mybatis缓存机制Mybatis也提供了缓存,分为一级缓存,二级缓存二级缓存级别比一级缓存要大图解如下:每个sqlSession中有一个一级缓存,所以说一级缓存是sqlSession级别,同构SqlSessionFactory.openSession()生产出来的每个sqlSession对象中存在一个map集合,这个map集合里面存放的就是缓存数据,可以说一级缓存的底层数据结构就是一个map集合(HashMap)每个sqlSession对象原创 2020-07-30 01:41:00 · 202 阅读 · 0 评论 -
Mybatis---学习过程---Mybatis复杂映射操作一对一
Mybatis—学习过程—Mybatis复杂映射操作原创 2020-07-29 01:06:05 · 47 阅读 · 0 评论 -
Mybatis---学习过程---Mybatis配置文件深入mapper.xml
Mybatis—学习过程—Mybatis配置文件深入mapper.xml1.动态Sql之if标签Dao层//多条件组合查询:演示if,tongguoif标签判断条件是否为空,为空就不作处理,如果不为空那么就做为查询条件 List<User> findByCondition(User user);mapper.xml<!--多条件组合查询--> <select id="findByCondition" resultType="com.lagou.poj原创 2020-07-28 13:12:02 · 106 阅读 · 0 评论 -
Mybatis---学习过程---Mybatis配置文件深入SqlMapConfig.xml
Mybatis—学习过程—Mybatis配置文件深入SqlMapConfig.xml配置文件深入environments和mapper标签之前有过介绍所以直接从properties说起1.properties标签将数据源配置信息单独抽取成一个properties文件,该标签可以加载额外配置的properties文件2.typeAliases标签:就是为java类型设置一个比较短的名字 <typeAliases><!-- 给单独的实体起别名,alias:原创 2020-07-28 01:10:29 · 80 阅读 · 0 评论 -
Mybatis---学习过程---基础回顾Dao层开放方式回顾
Mybatis—学习过程—基础回顾Dao层开放方式回顾1.传统开发模式编写UserDao接口public interface UserDao { List<User> findAll() throws IOException;}编写UserDaoImpl实现类public class UserDaoImpl implements UserDao { public List<User> findAll() throws IOException { InputStr原创 2020-07-28 00:03:09 · 75 阅读 · 0 评论 -
Mybatis---学习过程---基础回顾
Mybatis—学习过程—基础回顾Mybatis是一个基于 ORM 的 半自动 轻量级 的持久层框架1.什么是ORMORM的全称是:Object Relational Mapping,表示的是对象-关系映射的缩写,其实就是让我们的实体类与数据库表产生映射关系,产生一种效果操作实体类等同操作数据库表2.半自动是什么意思就是我们在使用Mybatis框架时,仍需要手动去写sql语句有半自动就有全自动框架,在使用全自动框架中是无需我们手动去写sql的,只需要操作持久化对象就能实现CRUD的操作当我原创 2020-07-27 01:24:01 · 98 阅读 · 0 评论 -
Mybatis---学习过程---自定义持久层框架设计思路优化
Mybatis—学习过程—自定义持久层框架设计思路优化原创 2020-07-27 00:51:44 · 103 阅读 · 0 评论 -
Mybatis---学习过程---自定义持久层框架设计思路
Mybatis—学习过程—自定义持久层框架设计思路1.分析思路可以从两个方面来入手使用端:就是一个项目自定义持久层框架本身原创 2020-07-24 00:12:53 · 171 阅读 · 0 评论 -
Mybatis---学习过程---JDBC回顾及问题分析
Mybatis—学习过程—JDBC回顾及问题分析1.Mybatis—持久层框架Mybatis是一个持久层框架,一说到持久层肯定会会想到是JavaEE与数据库交互的一层DAO层很早之前有JDBC可以和数据库进行交互,那么为什么后来还会有Mybatis,这是一个值得思考的问题!原因就是使用JDBC与数据库之间完成交互时,它本身还是会出现一些问题的后来出现的很多持久层框架都是封装的JDBC,但是他们JDBC出现的问题进行了解决或者避让,Mybatis知识其中之一2.举个例子具体分析JDBC这原创 2020-07-22 13:12:12 · 89 阅读 · 0 评论 -
Mybatis---B站学习总结---全局配置文件
Mybatis—B站学习总结—全局配置文件Mybatis有两个配置文件:1.全局配置文件:mybatis-config.xml指导mybatis正确运行的一些全局配置2.SQL映射文件:相当于是对dao接口的一个实现描述细节:1.获取到的是接口的代理对象dao.getClass( ),Mybatis字节创建的2.SqlSessionFactory和SqlSession SqlSessionFactory创建SqlSession对象,Factory原创 2020-05-27 00:59:57 · 122 阅读 · 0 评论 -
Mybatis---B站学习总结
Mybatis—B站学习总结Mybatis:和数据交互的框架,持久化层框架原创 2020-05-25 13:09:05 · 92 阅读 · 0 评论