05.MyBatis-Plus条件构造器和常用接口

[TOC]一、Wrapper条件构造器条件构造器wrapper就是用来封装CRUD方法参数条件的一个接口,其底层有很多的子类,最主要的就是最下面的四个子类:queryWrapper:可以用来删改查updateWrapper:可以在修改操作时不必创建实体类对象的操作LambdaQueryWrapper和LambdaUpdateWrapper:则是在字段参数的调用上进行了升级,其他都一样因为增删改查中的增加记录不需要条件即可完成,所以增加方法无需条件构造器wrapper,其他的删改查则是有这个条件构造器参数的。Wrapper : 条件构造抽象类,最顶端父类AbstractWrapper:用于...

Java 2022-12-20 PM 1805℃ 0条

04.MyBatis-Plus常用注解

[TOC]一、@TableName经过以上的测试,在使用MyBatis-Plus实现基本的CRUD时,我们并没有指定要操作的表,只是在 Mapper接口继承BaseMapper时,设置了泛型User,而操作的表为user表。由此得出结论,MyBatis-Plus在确定操作的表时,由BaseMapper的泛型决定,即实体类型决定,且默认操作的表名和实体类型的类名一致。1.1 问题若实体类类型的类名和要操作的表的表名不一致,会出现什么问题?我们将表user更名为t_user,测试查询功能程序抛出异常,Table ‘mybatis_plus.user’ doesn’t exist,因为现在的表...

Java 2022-12-19 PM 1796℃ 0条

03.MyBatis-Plus基本CRUD

[TOC]一、BaseMapper通用 CRUD 封装BaseMapper接口,为 Mybatis-Plus 启动时自动解析实体表关系映射转换为 Mybatis 内部对象注入容器泛型 T 为任意实体对象参数 Serializable 为任意类型主键 Mybatis-Plus 不推荐使用复合主键约定每一张表都有自己的唯一 id 主键对象 Wrapper 为 条件构造器public interface BaseMapper<T> extends Mapper<T> { /** * 插入一条记录 * * @param entity...

Java 2022-12-10 PM 1507℃ 0条

02.MyBatis-Plus入门案例

[TOC]一、环境准备1.1 开发环境IDE:idea 2018.3JDK:JDK8+构建工具:maven 3.5.4MySQL版本:MySQL 5.7Spring Boot:2.7.6MyBatis-Plus:3.5.11.2 创建数据库及表(1)创建数据库及表CREATE DATABASE `mybatis_plus` /*!40100 DEFAULT CHARACTER SET utf8mb4 */; use `mybatis_plus`; CREATE TABLE `user` ( `id` bigint(20) NOT NULL COMMENT '主键ID', ...

Java 2022-12-10 PM 1370℃ 0条

01.MyBatis-Plus简介

[TOC]前言MyBatis最大的不足就是对于简单的单表操作没有提供一套开箱即用的通用持久化操作,这是最大的不足,而对于MyBatis自身功能不够丰富其实这点都可以通过其它方式来实现。一、概述MyBatis-Plus是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为了简化开发、提升效率而生。MyBatis-Plus提供了通用的mapper和service,可以在不编写任何SQL语句的情况下,快速的实现对单表的CRUD、批量、逻辑删除、分页等操作。二、MyBatis-Plus的特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自...

Java 2022-12-09 PM 1301℃ 0条

06.MyBatis动态SQL介绍

[TOC]前言Mybatis框架的动态SQL技术是一种根据特定条件动态拼装SQL语句的功能,它存在的意义是为了解决 拼接SQL语句字符串时的痛点问题。动态 SQL 大大减少了编写代码的工作量,更体现了 MyBatis 的灵活性、高度可配置性和可维护性。一、动态SQL的元素MyBatis 的动态 SQL 包括以下几种元素,如下表所示元素作用备注if判断语句单条件分支判断choose(when、otherwise)相当于Java中的swith case语句多条件分支判断trim、where辅助元素用于处理一些SQL拼接问题foreach循环语句在in语句等列举条件常用bind辅助元素拼接参数...

Java 2022-12-08 PM 1122℃ 0条

05.MyBatis自定义映射resultMap

[TOC]前言如果从数据库查询出来的数据无法直接映射到实体类对象,那么就可以通过自定义映射来解决这个问题。一、准备工作1.1 创建表创建两个员工表格t_emp和t_dept职员表(t_emp)CREATE TABLE `t_emp` ( `eid` int(11) NOT NULL AUTO_INCREMENT, `emp_name` varchar(255) DEFAULT NULL, `age` int(11) DEFAULT NULL, `sex` varchar(255) DEFAULT NULL, `email` varchar(255) DEFAULT N...

Java 2022-12-08 AM 1298℃ 0条

04.MyBatis特殊SQL执行

[TOC]一、模糊查询1.1 概述模糊查询使用通配符%(可以匹配任意个数字符)或通配符_(匹配一个任意字符)将查询信息进行模糊匹配,使用like关键字进行匹配查询,通过通配符前置、后置或前后置可以查询与部分信息匹配的数据。示例+----+--------+ | id | name | +----+--------+ | 1 | JONES | | 2 | SCOTT | | 3 | FORD | +----+--------+ -- 示例一:找出名字中含有O的? select name from emp where name like '%O%'; -- 示例二:找...

Java 2022-12-07 PM 1314℃ 0条

03.MyBatis各种查询功能

[TOC]前言使用Mybatis进行查询的时候,查询出来的数据可能有一条数据,也可能是多条,我们就得根据返回数据的条数来指定返回类型,如果记录是多条,那么返回值类型就不能是实体类。如果查询出的数据只有一条,可以通过:实体类对象接收List集合接收Map集合接收,结果{password=123456, sex=男, id=1, age=23, username=admin}如果查询出的数据有多条,一定不能用实体类对象接收,会抛异常TooManyResultsException,可以通过:实体类类型的List集合接收Map类型的List集合接收在mapper接口的方法上添加@MapKey注解...

Java 2022-12-06 PM 1604℃ 0条

02.MyBatis获取参数值的两种方式

[TOC]一、获取参数值的方式MyBatis获取参数值的两种方式:${}和#{}${}的本质就是字符串拼接,#{}的本质就是占位符赋值${}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号;#{}使用占位符赋值的方式拼接sql,此时为字符串类型或日期类型的字段进行赋值时,可以自动添加单引号。二、单个字面量类型的参数若mapper接口中的方法参数为单个的字面量类型(只有一个参数值),此时可以使用${}和#{}以任意的名称(最好见名识意)获取参数的值注意${}需要手动加单引号#{}方式<!--User getUserByUsername(Str...

Java 2022-12-05 PM 1238℃ 0条