持久层框架学习之路
文章平均质量分 87
持久层框架学习之路
PoetryAndTheDistance
三年Java后端,一年数据。一年交付。没别的爱好,只是喜欢啃骨头。
展开
-
MyBatis插件原理
目录插件的使用拦截器介绍及配置源码分析总结MyBatis提供了一种插件(plugin)的功能,虽然叫做插件,但其实这是拦截器功能。那么拦截器拦截MyBatis中的哪些内容呢?我们进入官网看一看:MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括:Executor (update, query, flushStatements, commit, rollback, getTransaction, clo原创 2021-06-07 22:13:34 · 373 阅读 · 0 评论 -
Mybatis-设计模式总结
目录1、Builder模式2、工厂模式3、单例模式4、代理模式5、组合模式6、模板方法模式7、适配器模式8、装饰者模式9、迭代器模式虽然我们都知道有26个设计模式,但是大多停留在概念层面,真实开发中很少遇到,Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,能够更深入的理解设计模式。Mybatis至少遇到了以下的设计模式的使用:Builder模式,例如SqlSessionFactoryBuilder、XMLConfigBuilde原创 2021-06-07 22:07:14 · 222 阅读 · 0 评论 -
MyBatis解析动态SQL原理分析
废话不多说,直接进入文章。我们在使用mybatis的时候,会在xml中编写sql语句。比如这段动态sql代码:<update id="update" parameterType="org.format.dynamicproxy.mybatis.bean.User"> UPDATE users <trim prefix="SET" prefixOverrides=","> <if test="name != null and n...原创 2021-06-07 21:54:37 · 1040 阅读 · 0 评论 -
MyBatis的二级缓存讲解
目录1、二级缓存的定义2、二级缓存扩展性需求3、二级缓存的结构4、SynchronizedCache线程同步缓存区5、LoggingCache统计命中率以及打印日志6、ScheduledCache过期清理缓存区7、LruCache(最近最少使用)防溢出缓存区8、FifoCache(先进先出)防溢出缓存区9、二级缓存的使用(命中条件)10、二级缓存的配置11、二级缓存为什么要提交之后才能命中缓存?12、二级缓存执行流程1、二级缓存的定义二级缓存也称作是应原创 2021-06-07 21:46:02 · 453 阅读 · 0 评论 -
三:Spring整合Mybatis原理
目录前言Mybatis集成Spring:1.Mybatis集成Spring的适配器源码下载:2.Spring集成MyBatis1.SqlSessionFactoryBean2.Spring是怎么管理Mapper接口的动态代理的前言Spring整合MyBatis的原理也是一道非常高频的面试题, 下面我们一起来记录一下其中的原理, 主要是Spring是怎么管理MyBatis中的Mapper动态代理的。Mybatis集成Spring:1.Mybatis集成Spring.原创 2021-06-07 21:38:51 · 399 阅读 · 1 评论 -
二:MyBatis执行Sql的流程分析
目录openSession的过程:获取Mapper的流程Mapper方法的执行流程简单总结重要类调试主要关注点本章着重介绍MyBatis执行Sql的流程,关于在执行过程中缓存、动态SQl生成等细节不在本章中体现还是以之前的查询作为列子:public class App { public static void main(String[] args) { String resource = "mybatis-config.xml";原创 2021-06-07 21:25:44 · 334 阅读 · 1 评论 -
一:MyBatis解析全局配置文件
传统JDBC和Mybatis相比的弊病传统JDBC@Testpublic void test() throws SQLException { Connection conn=null; PreparedStatement pstmt=null; try { // 1.加载驱动 Class.forName("com.mysql.jdbc.Driver"); // 2.创建连接 conn= DriverMan原创 2021-06-07 21:11:06 · 235 阅读 · 3 评论 -
MyBatis面试题
目录MyBatis简介MyBatis是什么?ORM是什么为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?传统JDBC开发存在的问题JDBC编程有哪些不足之处,MyBatis是如何解决这些问题的?Mybatis优缺点MyBatis框架适用场景Hibernate 和 MyBatis 的区别MyBatis的解析和运行原理MyBatis编程步骤是什么样的?请说说MyBatis的工作原理MyBatis的功能架构是怎样的MyBatis的框架架原创 2021-06-01 23:41:24 · 514 阅读 · 0 评论 -
八:SSM框架整合
目录1、导入pom文件2、编写各个框架的配置文件在老期的项目中,一般都是使用ssm项目做开发的,虽然现在的主流开发是springboot来做开发,但是ssm的基本整合还是需要掌握的。整合SSM框架要做哪些事情:SpringMVC: pomweb.xml 前端调度器servlet 编码过滤器filter 支持rest的过滤器 springmvc.xml 扫描controller包 添加 视图解析器 静态资源解析 添加控制器类...Spring:we原创 2021-06-01 23:35:08 · 191 阅读 · 0 评论 -
七:MyBatis逆向工程&分页插件
目录1、分页插件Mybatis插件典型适用场景分页功能公共字段统一赋值性能监控其它实现思考:自定义分页插件分页插件使用代理和拦截是怎么实现的?PageHelper 原理2、MyBatis逆向工程1、分页插件MyBatis 通过提供插件机制,让我们可以根据自己的需要去增强MyBatis 的功能。需要注意的是,如果没有完全理解MyBatis 的运行原理和插件的工作方式,最好不要使用插件,因为它会改变系底层的工作逻辑,给系统带来很大的影响。MyBatis原创 2021-06-01 23:31:30 · 596 阅读 · 2 评论 -
六:MyBatis基于XML的详细使用——缓存
目录1、介绍2、一级缓存的使用3、二级缓存1、缓存的使用2、缓存的属性3、二级缓存的作用范围:4、整合第三方缓存1.整合redis2.整合ehcache1、介绍MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制。 为了使它更加强大而且易于配置,我们对 MyBatis 3 中的缓存实现进行了许多改进。默认情况下,只启用了本地的会话缓存,它仅仅对一个会话中的数据进行缓存。 要启用全局的二级缓存,只需要在你的 SQL 映射文件中添加一行:原创 2021-06-01 23:10:51 · 240 阅读 · 1 评论 -
五:MyBatis基于XML的详细使用——动态sql
目录1、动态sql1、if1.1 where1.2 trim2、foreach3、choose、when、otherwise4、set1、动态sql动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。使用动态 SQL 并非一件易事,但借助可用于任何 SQL 映射语原创 2021-06-01 22:51:39 · 1637 阅读 · 0 评论 -
四:MyBatis基于XML的详细使用——高级结果映射
目录1、联合查询2、嵌套结果2.1多对一2.2一对多3、嵌套查询3.1、多对一3.2、一对多4、延迟查询5、总结1.一对一2.一对多3.多对多1、联合查询emp.javaimport java.time.LocalDate;public class Emp { private Integer id; private String username; private LocalDate createDate;原创 2021-06-01 22:30:44 · 418 阅读 · 1 评论 -
三:MyBatis基于XML的详细使用-参数、返回结果处理
目录1、参数的取值方式2、select的参数传递3、处理集合返回结果4、自定义结果集---resultMap1、参数的取值方式在xml文件中编写sql语句的时候有两种取值的方式,分别是#{}和${},下面来看一下他们之间的区别: <!--获取参数的方式: 1.#{} ==> jdbc String sql=" SELECT id,user_name FROM EMP WHERE id=?" 1.会经过JDBC当中PreparedStateme原创 2021-06-01 22:16:11 · 1497 阅读 · 0 评论 -
二:MyBatis的配置文件详解
目录1、日志2、全局配置文件详解3、Mybatis SQL映射文件详解1、insert、update、delete元素1、日志日志演变:1.4之前 没有任何的日志框架System.out.println("")小明将日志按照级别输入,按照包或者类来输入。 将日志输入到文件中,能不能按照日期或者文件大小来进行归档,记录日志同时发送邮件给开发人员 自定义格式,让日志更美观 性能log4j 开源 所有的开发人员一起来维护这个框架。 apache 收入。jdk J原创 2021-05-31 21:36:32 · 216 阅读 · 0 评论 -
一:Mybatis的介绍和基本使用
目录1、数据库操作框架的历程1.1 JDBC1.2 DBUtils1.3 Hibernate1.4 JDBCTemplate2、什么是Mybatis?3、快速搭建Mybatis项目1、数据库操作框架的历程1.1 JDBCJDBC(Java Data Base Connection,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC提供了一种基准,据此可以构建更高级的工具和原创 2021-05-31 21:29:15 · 279 阅读 · 3 评论