MyBatis-Plus Mapper CRUD 接口之Update
方法1234// 根据 whereWrapper 条件,更新记录int update(@Param(Constants.ENTITY) T updateEntity, @Param(Constants.WRAPPER) Wrapper<T> whereWrapper);// 根据 ID 修改int updateById(@Param(Constants.ENTITY) T entity);
测试代码update12345678@Testvoid update() { UpdateWrapper<BlogType> blogTypeUpdateWrapper = new UpdateWrapper<>(); blogTypeUpdateWrapper.eq("name", "spring"); BlogType blogType = new BlogType(); blogType.setSortNum(111); blogTypeMapper.update(blogType, blogTypeUpd ...
MyBatis-Plus Mapper CRUD 接口之Delete
方法12345678// 根据 entity 条件,删除记录int delete(@Param(Constants.WRAPPER) Wrapper<T> wrapper);// 删除(根据ID 批量删除)int deleteBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);// 根据 ID 删除int deleteById(Serializable id);// 根据 columnMap 条件,删除记录int deleteByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);
测试代码delete123456@Testvoid delete() { QueryWrapper<BlogType> blogTypeQueryWrapper = new QueryWrapper<>(); blogTypeQueryWrapper.e ...
MyBatis-Plus 自定义SQL
自定义SQL的方式
Annotation注解方式
XML配置文件方式
Annotation注解方式直接先定义接口方法,然后在接口方法上面开发注解即可
12345678910111213141516171819202122package com.ledao.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;import com.ledao.entity.BlogType;import org.apache.ibatis.annotations.Select;/** * @author LeDao * @company * @create 2021-07-22 22:15 */public interface BlogTypeMapper extends BaseMapper { /** * 根据id查找博客类型 * * @param id * @return */ @Select("select * from t_blogtype whe ...
MyBatis-Plus 条件构造器
条件构造器层级关系
介绍 :
上图绿色框为抽象类abstract
蓝色框为正常class类,可new对象
黄色箭头指向为父子类关系,箭头指向为父类
wapper介绍 :
Wrapper : 条件构造抽象类,最顶端父类,抽象类中提供4个方法西面贴源码展示
AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件
AbstractLambdaWrapper : Lambda 语法使用 Wrapper统一处理解析 lambda 获取 column。
LambdaQueryWrapper :看名称也能明白就是用于Lambda语法使用的查询Wrapper
LambdaUpdateWrapper : Lambda 更新封装Wrapper
QueryWrapper : Entity 对象封装操作类,不是用lambda语法
UpdateWrapper : Update 条件封装,用于Entity对象更新操作
各函数及其实例
测试QueryWrapper12345678910@Testvoid queryWrapper() { Que ...
MyBatis-Plus Mapper CRUD 接口之Insert
方法12// 插入一条记录int insert(T entity);
参数为要插入的实体
该方法返回的是成功插入的数据条数,所以我们可以根据返回的结果是否大于0来判断是否插入成功,大于代表成功,反之则是失败
配置application.yml1234mybatis-plus: global-config: db-config: id-type: auto
目的:让插入的数据的id自增
测试Java代码
123456789101112@Testvoid insert() { BlogType blogType = new BlogType(); blogType.setName("222"); blogType.setSortNum(22); int result = blogTypeMapper.insert(blogType); if (result > 0) { System.out.println("插入成功"); } else { System.out.println ...
Spring Boot引入MyBatis-Plus
引入依赖12345678910<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.2</version></dependency><dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.10</version></dependency>
application.yml配置12345678910111213141516171819202122232425262728293031server: port: 8080 servlet: context-path: / tomcat: u ...
队列
简介队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列
队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出(FIFO—first in first out)线性表
LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用
队列的操作使用了LinkedList类的方法进行封装,更多LinkedList类的方法去查看JDK
enqueue加入队列(在表的后端进行插入操作)
dequeue离开队列(在表的前端进行删除操作)
代码实现Java代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 ...
栈
简介栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素
栈的操作empty()测试此堆栈是否为空
peek()查看此堆栈顶部的对象,而不从堆栈中删除它
pop()删除此堆栈顶部的对象,并将该对象作为此函数的值返回
push()将元素添加到堆栈的顶部
栈的代码实现Java代码
1234567891011121314151617181920212223package com;import java.util.Stack;/** * @author LeDao * @company * @create 2019-10-03 19:30 */public class Main { public static void main(String[] args) { Stack<String ...
IntelliJ IDEA Alt+Enter快捷键添加javadoc文档注释被disabled的解决方法
问题描述Alt+Enter快捷键本来是有添加javadoc文档注释选项的,但是不小心点击disabled后,该选项就没有了
解决方法
打开配置(快捷键为Ctrl+Shift+S)
根据下图提示找到Add Javadoc,勾选后保存即可
二分查找
介绍二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
要求1、必须采用顺序存储结构
2、必须按关键字大小有序排列
基本思想二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果x<a[n/2],则只要在数组a的左半部分继续搜索x,如果x>a[n/2],则只要在数组a的右半部搜索x
Java代码12345678910111213141516171819202122232425262728293031323334353637383940import java.util.Arrays;import java.util.Scanner;/** * @author LeDao * @company * @create 2021-06-21 12:38 */public class Test { public static void main(String[] args) { ...