Loading

随笔分类 -  08-框架:MyBatis

记录MyBatis使用相关的心得~
摘要:MP 可以实现 SQL 的分析打印功能,输出sql执行时间以及真实执行的SQL语句 step1:引入p6spy 依赖引入 <dependency> <groupId>p6spy</groupId> <artifactId>p6spy</artifactId> <version>3.8.2</vers 阅读全文
posted @ 2021-01-13 19:42 程序员自由之路 阅读(477) 评论(0) 推荐(0) 编辑
摘要:分页功能使用 MP的分页功能是通过MyBatis的插件实现的,使用起来也非常简单。下面先介绍下使用方式。 step1:配置分页插件 @Configuration @EnableTransactionManagement @MapperScan("com.csx.demo.spring.boot.da 阅读全文
posted @ 2021-01-12 10:40 程序员自由之路 阅读(2125) 评论(0) 推荐(0) 编辑
摘要:什么是自动填充 有些表中会有更新时间、创建时间、更新人或者创建人这些字段。 每次对数据进行新增、删除、修改时都需要对这些字段进行设置。传统的做法是在进行这些操作前,对Entity的字段进行set设置,然后再进行操作。这种做法不仅容易忘记导致出错、而且代码会显得特别冗余。 虽然新增时间和修改时间可以使 阅读全文
posted @ 2021-01-11 14:53 程序员自由之路 阅读(2445) 评论(1) 推荐(1) 编辑
摘要:实现步骤 step1:添加乐观锁拦截器 MP的其他拦截器功能可以参考官网 @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPl 阅读全文
posted @ 2021-01-08 20:28 程序员自由之路 阅读(2060) 评论(0) 推荐(0) 编辑
摘要:$ $是字符串替换,#是预编译处理。 Mybatis在处理#时,会将sql中的#替换为?号,调用PreparedStatement的set方法来赋值; Mybatis在处理$时,就是把$原样替换成变量的值。 使用#可以有效的防止SQL注入,提高系统安全性。 当实体类中的属性名和表中的字段名不一样 , 阅读全文
posted @ 2020-06-15 13:53 程序员自由之路 阅读(1129) 评论(0) 推荐(0) 编辑
摘要:有时候在项目中会遇到需要连接两个数据库的情况。本文就结合Spring和Mybatis来讲下怎么使用双数据源(或者是多数据源)。 背景知识介绍 本文中实现多数据源的关键是Spring提供的AbstractRoutingDataSource。这个类可以根据lookup key来实现底层数据源的动态转换。 阅读全文
posted @ 2020-06-04 14:14 程序员自由之路 阅读(2674) 评论(0) 推荐(0) 编辑
摘要:缓存简介 一般我们在系统中使用缓存技术是为了提升数据查询的效率。当我们从数据库中查询到一批数据后将其放入到混存中(简单理解就是一块内存区域),下次再查询相同数据的时候就直接从缓存中获取数据就行了。这样少了一步和数据库的交互,可以提升查询的效率。 但是一个硬币都具有两面性,缓存在带来性能提升的同时也“ 阅读全文
posted @ 2020-06-03 16:19 程序员自由之路 阅读(1032) 评论(0) 推荐(0) 编辑
摘要:MyBatis的使用非常简单,使用流程整体可以分成以下四步: public class UserDaoTest { private SqlSessionFactory sqlSessionFactory; @Before public void setUp() throws Exception{ C 阅读全文
posted @ 2020-06-01 16:04 程序员自由之路 阅读(1873) 评论(0) 推荐(0) 编辑
摘要:MyBatis是我们开发中最常用的ORM框架,本目录贴是我自己在学习MyBatis过程中的总结记录,方便后面回顾总结 MyBatis知识点总结 MyBatis的主配置文件详解 MyBatis的Mapper配置文件详解 MyBatis的动态SQL配置 MyBatis启动流程分析 MyBatis执行Sq 阅读全文
posted @ 2020-04-08 20:08 程序员自由之路 阅读(340) 评论(0) 推荐(0) 编辑
摘要:[TOC] 假如不结合Spring框架,我们使用MyBatis时的一个典型使用方式如下: 我们首先需要SqlSessionFactory,然后通过SqlSessionFactory的openSession方法获得SqlSession。通过SqlSession获得我们定义的接口的动态代理类(Mappe 阅读全文
posted @ 2020-04-08 20:02 程序员自由之路 阅读(2004) 评论(0) 推荐(2) 编辑
摘要:CDATA 标签的使用 术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。在 XML 元素中,"<" 和 "&" 是非法的。 "<" 会产生错误,因为解析器会把该字符解释为新元素的开始。 "&" 也会产生错误,因为解析器会把该字符解释 阅读全文
posted @ 2020-03-31 17:24 程序员自由之路 阅读(916) 评论(0) 推荐(0) 编辑
摘要:[TOC] 本文转载自 "MyBatis拦截器原理探究" MyBatis拦截器介绍 MyBatis提供了一种插件(plugin)的功能,虽然叫做插件,但其实这是拦截器功能。那么拦截器拦截MyBatis中的哪些内容呢? 我们进入 "官网" 看一看: MyBatis 允许你在已映射语句执行过程中的某一点 阅读全文
posted @ 2019-11-18 16:27 程序员自由之路 阅读(6978) 评论(0) 推荐(1) 编辑
摘要:本博客着重介绍MyBatis执行Sql的流程,关于在执行过程中缓存、动态SQl生成等细节不在本博客中体现,相应内容后面再单独写博客分析吧。 还是以之前的查询作为列子: public class UserDaoTest { private SqlSessionFactory sqlSessionFac 阅读全文
posted @ 2019-11-17 17:35 程序员自由之路 阅读(1161) 评论(0) 推荐(2) 编辑
摘要:MyBatis简单介绍 MyBatis是一个持久层框架,使用简单,学习成本较低。可以执行自己手写的SQL语句,比较灵活。但是MyBatis的自动化程度不高,移植性也不高,有时从一个数据库迁移到另外一个数据库的时候需要自己修改配置。 一个Mybatis最简单的使用列子如下: import org.ap 阅读全文
posted @ 2019-11-13 16:10 程序员自由之路 阅读(1964) 评论(0) 推荐(0) 编辑