随笔分类 - MyBatis && Plus
[转载]mapper文件使用大于 >小于 < 特殊字符
摘要:在使用mybatis时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,所以我们要使用<![CDATA[ ]]>来解决。 <![CDATA[ ]]> 是什么,这是XML语法。在CDATA内部的所有内容都会被解析器忽略。 如
动态sql
摘要:目录if 判断语句choose when otherwisewheresetforeachresultMap解决列名和属性名不一致resultMap的自动映射(AutoMapping)resultMap的继承 if 判断语句 <select id="queryUserListLikeUserName
Mapper XML 文件(映射文件)
摘要:目录CRUD标签selectinsertupdatedelete映射文件中语句接收方法参数${ }的用法#{ }接受多个参数sql片段 小贴士: 查询操作的select标签需要两个属性:id、resultType/resultMap(结果类型) 增删改标签只需要一个属性:id CRUD标签 sele
Mybatis逆向工程
摘要:目录Mybatis逆向工程中生成的Example类 Mybatis逆向工程中生成的Example类 MyBatis Generator:简称MBG,是一个专门为MyBatis框架使用者定制的代码生成器,可以快速的根据表生成对应的映射文件,接口,以及bean类。支持基本的增删改查,以及QBC风格的条件
动态代理Mapper实现类
摘要:目录动态代理Mapper实现类mybatis工具类自动提交事务 动态代理Mapper实现类 Mapper接口的动态代理实现,需要满足以下条件: 1. 映射文件中的命名空间与Mapper接口的全路径一致 2. 映射文件中的statementId与Mapper接口的方法名保持一致 3. 映射文件中的st
MyBatis缓存
摘要:目录一级缓存二级缓存自定义缓存-ehcache Mybatis缓存: MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制。默认情况下,只启用了本地的会话缓存,它仅仅对一个会话中的数据进行缓存。 Mybatis系统中默认定义了两级缓存:一级缓存和二级缓存 默认情况下,只有一
jdbcType
摘要:目录 在mapper.xml中,写java类映射数据库表字段的时候,有jdbcType,映射关联参数时加上jdbcType=xxx <insert id="insert" parameterType="java.xx.xx" > insert into table_xxx values(name =
mybatis-config.xml配置
摘要:目录properties属性读取外部资源settings设置驼峰匹配配置日志log4j日志工厂typeAliases类型别名方式一:typeAlias方式二:packageenvironments环境配置mappers映射器 pom依赖 <dependencies> <dependency> <gr
条件构造器-wapper
摘要:一、wapper介绍 1、Wrapper家族 在MP中我们可以使用通用Mapper(BaseMapper)实现基本查询,也可以使用自定义Mapper(自定义XML)来实现更高级的查询。当然你也可以结合条件构造器来方便的实现更多的高级查询。 Wrapper : 条件构造抽象类,最顶端父类 Abstra
乐观锁
摘要:三、乐观锁 1、场景 一件商品,成本价是80元,售价是100元。老板先是通知小李,说你去把商品价格增加50元。小李正在玩游戏,耽搁了一个小时。正好一个小时后,老板觉得商品价格增加到150元,价格太高,可能会影响销量。又通知小王,你把商品价格降低30元。 此时,小李和小王同时操作商品后台系统。小李操作
分页插件
摘要:一、分页插件 MyBatis Plus自带分页插件,只要简单的配置即可实现分页功能 1、添加配置类 创建config包,创建MybatisPlusConfig类 package com.atguigu.mybatisplus.config; @Configuration @MapperScan("c
常用注解-@TableLogic
摘要:四、@TableLogic 1、逻辑删除 物理删除:真实删除,将对应数据从数据库中删除,之后查询不到此条被删除的数据 逻辑删除:假删除,将对应数据中代表是否被删除字段的状态修改为“被删除状态”,之后在数据库中仍旧能看到此条数据记录 使用场景:可以进行数据恢复 2、实现逻辑删除 **step1:**数
常用注解-@TableField
摘要:三、@TableField 1、value属性 功能同TableId的value属性 注意:MP会自动将数据库中的下划线命名风格转化为实体类中的驼峰命名风格 **例如,**数据库中的列 create_time 和 update_time 自动对应实体类中的 createTime 和 updateTi
常用注解-@TableId
摘要:二、@TableId 1、雪花算法 默认情况下数据库的id列使用的是基于雪花算法的策略生成 背景 随着业务规模的不断扩大,需要选择合适的方案去应对数据规模的增长,以应对逐渐增长的访问压力和数据量。 数据库的扩展方式主要包括:业务分库、主从复制,数据库分表。 数据库分表 将不同业务数据分散存储到不同的
常用注解-@TableName
摘要:一、@TableName value属性 实体类的名字是User,数据库表名是t_user @TableName(value = "t_user") public class User {
五、自定义Mapper\六、自定义Service
摘要:五、自定义Mapper 当通用Mapper无法满足我们的需求时,我们可以自定义基于Mapper接口的xml文件,并在xml文件中配置SQL语句 1、接口方法定义 在UserMapper接口中定义如下方法 List<User> selectAllByName(String name); 2、创建xml
四、通用Service
摘要:四、通用Service MP中有一个接口 IService和其实现类 ServiceImpl,封装了常见的业务层逻辑 1、创建Service接口 创建 service 包,创建 UserService,继承 IService package com.atguigu.mybatisplus.servi
三、通用Mapper
摘要:三、通用Mapper MP中的基本CRUD在内置的BaseMapper中都已得到了实现。 创建MapperTests测试类: package com.atguigu.mybatisplus; @SpringBootTest public class MapperTests { @Resource p
二、快速入门
摘要:二、快速入门 1、创建数据库 创建数据库:mybatis_plus 创建数据表:user CREATE TABLE user ( id BIGINT(20) NOT NULL COMMENT '主键ID', name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名