MyBatis
MyBatis
章全蛋
这个作者很懒,什么都没留下…
展开
-
MyBatis-Plus 实体类实现动态表名
项目中使用了 MyBatis-Plus 简化开发,在项目中,对数据库表的操作,可以通过在数据表实体类中添加@TableName("table_name") 来指定该实体所对应的表,如下:@TableName("user")@Datapublic class User implements Serializable { private static final long serialVersionUID = 4462743168115185463L; }在业务中有这么个需求,在Us原创 2020-07-31 14:38:00 · 14156 阅读 · 11 评论 -
MyBatis(15) MyBatis的设计模式
文章目录MyBatis的设计模式MyBatis使用到的设计模式Builder构建者模式例子:使用构建者设计模式来生产computerMyBatis中的体现工厂模式例子:生产电脑MyBatis体现代理模式例子MyBatis体现MyBatis的设计模式我们知道有3类23种设计模式,我们来看看MyBatis源码中使用了哪些设计模式MyBatis使用到的设计模式模式MyBatis体现Builder模式例如SqlSessionFactoryBuilder、Environment工厂原创 2020-05-29 17:42:54 · 182 阅读 · 0 评论 -
MyBatis(14) MyBatis源码剖析
MyBatis源码剖析客户端调用MyBatis接口有两种方式:基于StatementId基于Mapper接口// 1.Resources工具类,配置文件的加载,把配置文件加载成字节输入流InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");// 2.解析了配置文件,并创建了sqlSessionFactorySqlSessionFactory sqlSessionFactory = n原创 2020-05-25 19:46:37 · 140 阅读 · 0 评论 -
MyBatis(13) MyBaits架构原理
文章目录架构设计主要构件及其相互关系总体流程加载配置并初始化接收调用请求处理操作请求架构设计我们把MyBatis的功能架构分为三层:API接口层提供给外部使用的接口API,开发人员通过这些本地API来操作数据库。接口层接到调用请求就会调用数据处理层来完成具体的数据处理MyBatis和数据库交互有两种方式:使用传统的MyBatis提供的API使用Mapper代理的方式数据处理层负责具体的SQL查找、SQL解析、SQL执行和执行结构映射处理等。它主要的目的是根据调用的请求完成一次原创 2020-05-23 16:50:48 · 379 阅读 · 0 评论 -
MyBatis(12) MyBatis常用第三方插件
文章目录MyBatis 常用第三方插件PageHelperpom导入通用PageHelper的坐标在MyBatis核心配置文件中配置PageHelper插件测试分页代码实现通用mapperpom导入通用mapper的坐标在MyBatis核心配置文件中配置通用mapper插件测试类MyBatis 常用第三方插件PageHelper分页助手PageHelper是将分页的复杂操作进行封装,使用简单的方式即可获得分页的相关数据开发步骤:pom导入通用PageHelper的坐标在MyBatis核心配置文原创 2020-05-23 15:19:04 · 816 阅读 · 0 评论 -
MyBatis(11) MyBatis 插件
文章目录MyBatis 插件插件介绍MyBatis插件介绍MyBatis插件原理拦截自定义插件源码分析MyBatis 插件插件介绍一般情况下,开源框架都会提供插件或者其他形式的拓展点,供开发者自行拓展。这样的好处是显而易见的,意识增加了框架的灵活性。二是开发者可以结合实际需求,对框架进行拓展,使其能够更好的工作。以MyBatis为例,我们可以基于MyBatis插件机制实现分页、分表、监控等功能。由于插件和业务无关,业务也无法感知插件的存在,因此可以无感植入插件,在无形中增强功能。MyBatis插件介原创 2020-05-23 11:58:25 · 191 阅读 · 0 评论 -
MyBatis(10) MyBatis 二级缓存
文章目录MyBatis 缓存 二级缓存二级缓存简介如何使用二级缓存:测试MyBatis 使用Redis 实现二级缓存源码分析MyBatis 缓存 二级缓存二级缓存简介二级缓存的原理和一级缓存的原理一样,第一次查询,会将数据放入缓存中,然后第二次查询则会直接从缓存中取数据。但是一级缓存是基于SqlSession的,而二级缓存是基于mapper文件的namespace的,也就是说多个SqlSession可以共享一个mapper中的二级缓存区域,并且如果两个mapper的namespace相同,即使是原创 2020-05-22 15:23:09 · 155 阅读 · 0 评论 -
MyBatis(9) MyBaits 一级缓存
文章目录MyBatis缓存一级缓存一级缓存原理探究与源码分析MyBatis缓存缓存就是内存中的数据,常常来自对数据库查询结果的保存,使用缓存,我们可以避免频繁的与数据库进行交互,进而提高响应速度MyBatis 也提供了对缓存的支持,分为一级缓存和二级缓存,可以通过下图来理解一级缓存是 SqlSession 级别的缓存。在操作数据库时需要构建 sqlSession 对象,在对象中有一个数据结构(HashMap)用于存储数据缓存。不同的 sqlSession 之间缓存数据区域(HashMap)是相互原创 2020-05-21 15:40:32 · 122 阅读 · 0 评论 -
MyBatis(8) MyBatis 基于注解开发
MyBatis 注解开发MyBatis的常用注解@Insert:实现新增@Update:实现更新@Delete:实现删除@Select:实现查询@Result:实现结果集封装@Results:可以与@Result 一起用,封装多个结果集@One:实现一对一结果集封装@Many:实现一对多结果集封装MyBatis基于注解的增删改查使用注解开发的好处就是:可以直接在Mapper接口写sql语句,无需编写mapper.xml文件,在业务简单的情况下,方便快速开发新建UserMapp原创 2020-05-20 20:29:58 · 194 阅读 · 0 评论 -
MyBatis(7) MyBatis复杂映射开发
文章目录MyBatis 复杂映射开发一对一查询一对多MyBatis 复杂映射开发一对一查询比如:用户表和订单表 ,它们的关系为:一个用户有多个订单,一个订单只属于一个用户。一对一查询的需求:查询一个订单,与此同时查出该订单所属的用户信息对应的sql语句为:select * from `order`,user where order.uid=user.id创建表:CREATE TABLE `order` ( `id` int(11) NOT NULL AUTO_INCREMENT,原创 2020-05-19 21:02:34 · 98 阅读 · 0 评论 -
MyBatis(6) 配置文件深入
文章目录MyBatis 配置文件深入SqlMapConfig.xmlMyBatis核心配置文件层级关系MyBatis 常用配置解析evnironments 标签mapper标签Properties标签typeAliases 标签mapper.xml动态sql语句ifwhereforeachSQL片段抽取MyBatis 配置文件深入SqlMapConfig.xmlMyBatis核心配置文件层级关系configuration 配置:properties 属性settings 设置typeAlia原创 2020-05-18 16:06:44 · 87 阅读 · 0 评论 -
MyBatis(5) 快速开始
文章目录MyBatis 快速开始步骤添加MyBatis依赖创建user数据库新建mybatis数据库编写核心文件SqlMapConfig.xml编写映射文件UserMapper.xml编写测试类MyBatis 快速开始步骤添加MyBatis依赖新建Maven工程,编辑pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xml原创 2020-05-15 17:06:42 · 160 阅读 · 0 评论 -
Mybatis(4) MyBatis 基本概念
文章目录MyBatis相关概念对象/关系数据库映射 (ORM)MyBatis 简介MyBatis 历史MyBatis 优势MyBatis相关概念对象/关系数据库映射 (ORM)ORM 全称 Object/Relation Mapping : 表示 对象 - 关系 映射的缩写ORM完成面向对象的编程语言到关系型数据库的映射。当ORM框架完成映射后,程序员既可以利用面向对象程序设计语言的简单易用性,又可以利用关系数据库的技术优势。ORM把关系型数据库包装成面向对象的模型。ORM框架是面向对象设计语言与关原创 2020-05-15 15:13:40 · 308 阅读 · 0 评论 -
MyBatis(3) 自定义持久层框架 —— 手写简单版Mybatis
首先新建一个Maven工程sqlMapConfig 配置文件在resource目录下新建 sqlMapConfig.xml 配置文件,用来存放数据库配置信息,存放mapper.xml的全路径xml里的标签都是自定义的<configuration> <!-- 数据库配置信息 --> <dataSource> <p...原创 2020-05-06 12:14:07 · 446 阅读 · 0 评论 -
Mybatis(2) 自定义持久层框架 —— 设计思路
自定义持久层框架设计思路:使用端:提供两部分配置信息:数据库配置信息、sql配置信息 (sql语句、 参数类型、返回值类型)使用配置文件来提供这两部分配置信息:sqlMapConfig.xml :存放数据库配置信息,存放mapper.xml的全路径mapper.xml :存放sql配置信息自定义持久层框架本身: 本质就是对JDBC代码进行了封装加载配置文件:根据配...原创 2020-05-06 12:03:43 · 206 阅读 · 0 评论 -
Mybatis(1) 为什么要使用MyBatis?—— JDBC存在的问题分析
分析JDBC操作问题如果不使用持久层框架,直接使用JDBC与数据库交互,代码大概会长以下这个样子: public static void main(String[] args) { Connection connection = null; PreparedStatement preparedStatement = null; Result...原创 2020-04-30 15:23:41 · 263 阅读 · 0 评论