做通路富集分析的网站,苏州高端网站建设开发,wordpress做过的大型网站吗,如何成为厂家代理商系列文章目录 提示#xff1a;这里可以添加系列文章的所有文章的目录#xff0c;目录需要自己手动添加 MyBatisPlus之增删改查 提示#xff1a;写完文章后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、什么是Mybati…系列文章目录 提示这里可以添加系列文章的所有文章的目录目录需要自己手动添加 MyBatisPlus之增删改查 提示写完文章后目录可以自动生成如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、什么是MybatisPlus二、SpringBoot集成MyBatisPlus三、MybatisPlus增删改查新增修改删除根据id删除批量删除根据条件删除 查询根据id查询根据id批量查询根据字段条件查询条件构造器查询什么是条件构造器条件构造器参数条件构造器用法 分页查询 总结 前言
提示这里可以添加本文要记录的大概内容
在当今的软件开发领域Java 一直占据着重要的地位。而在 Java 数据库操作方面MyBatis-Plus 以其简洁、高效、易用的特点成为了许多开发者的首选。 MyBatis-Plus 是一个基于 MyBatis 的增强工具它在 MyBatis 的基础上进行了扩展和优化提供了更加方便快捷的数据库操作方式。使用 MyBatis-Plus我们可以通过注解和配置文件来轻松地实现数据库的增删改查操作极大地提高了开发效率。 在本博客中我们将详细介绍 MyBatis-Plus 的增删改查功能并通过实际的代码示例来演示如何使用这些功能。我们将从基础知识开始逐步深入探讨 MyBatis-Plus 的高级特性。无论你是刚刚接触 MyBatis-Plus还是已经有一定经验的开发者都能从中受益。 通过阅读本博客你将了解到如何利用 MyBatis-Plus 进行高效的数据库操作以及如何优化你的代码以获得更好的性能。让我们一起开启 MyBatis-Plus 之旅吧 提示以下是本篇文章正文内容下面案例可供参考
一、什么是MybatisPlus
MyBatis-Plus 是一个基于 MyBatis 框架的增强工具它提供了一系列额外的功能和特性使数据库操作更加简单和高效。MyBatis-Plus 的主要特点和优势包括
简化 SQL 编写MyBatis-Plus 提供了丰富的注解和内置方法极大地简化了 SQL 查询语句的编写。你可以通过注解或方法调用的方式来定义查询条件、分页、排序等而无需手动编写复杂的 SQL 语句。自动生成代码MyBatis-Plus 可以根据数据库表结构自动生成实体类、Mapper 接口、Service 类等相关代码减少了手动编写代码的工作量。懒人式 CRUD 操作MyBatis-Plus 提供了懒人式的 CRUD增删改查操作方法你可以通过简单的调用方法来实现对数据库的增删改查操作无需编写复杂的 SQL 语句和映射文件。分页和排序功能MyBatis-Plus 内置了强大的分页和排序功能你可以通过简单的设置来实现分页和排序无需手动编写 SQL 语句。性能优化MyBatis-Plus 对查询语句进行了优化支持缓存、动态 SQL、延迟加载等技术提高了数据库操作的性能。灵活的插件机制MyBatis-Plus 支持插件扩展你可以通过编写插件来实现自定义功能如拦截器、分页插件等。
二、SpringBoot集成MyBatisPlus
1.创建SpringBoot项目添加MyBatisPlus起步依赖
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId
/dependency
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope
/dependency
!-- MyBatisPlus --
dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.5.0/version
/dependency
!-- mysql驱动 --
dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.26/version
/dependency
!-- lombok --
dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional
/dependency
2.在SpringBoot配置文件中配置数据源
# 数据源
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql:///school?serverTimezoneUTCusername: rootpassword: root
3.编写实体类大家根据需求编写 4.编写Mapper接口继承BaseMapper
public interface StudentMapper extends BaseMapperStudent {
}
5.在 SpringBoot启动类中添加 MapperScan 注解扫描Mapper文件夹
SpringBootApplication
MapperScan(com.zhangsan.mpdemo2.mapper)
public class SpringbootMpApplication {public static void main(String[] args) {SpringApplication.run(SpringbootMpApplication.class, args);}
}
6.测试Mapper方法
SpringBootTest
public class StudentMapperTest {Autowiredprivate StudentMapper studentMapper;Testpublic void testFindById(){Student student studentMapper.selectById(1);System.out.println(student);}
}
三、MybatisPlus增删改查
新增
Test
public void testAdd(){Student student new Student(null,zhangsan,zszs.com,m,20);studentMapper.insert(student);// MyBatisPlus插入成功后可直接直接获取主键的值System.out.println(student.getId());
}
修改
Test
public void testUpdate() {//创建实体类对象Student student new Student();//设置需要更新的属性student.setName(zhangsan);//设置需要修改的数据idstudent.setId(1);//根据主键进行更新没有设置的值则忽略studentMapper.updateById(student);
}
删除
根据id删除
// 根据id删除
Test
public void testDeleteById(){studentMapper.deleteById(7);
}
批量删除
// 批量删除
Test
public void testDeleteBatch(){ArrayListInteger ids new ArrayList();ids.add(2);ids.add(3);studentMapper.deleteBatchIds(ids);
}根据条件删除
// 根据字段条件删除
Test
public void testDeleteMap(){MapString,Object map new HashMap();// 键为数据库列名而不是对象属性名map.put(sname,小王);map.put(gender,m);// 删除name为小王且gender为m的数据studentMapper.deleteByMap(map);查询
根据id查询
// 根据id查询
Test
public void testFindById() {Student student studentMapper.selectById(1);System.out.println(student);
}根据id批量查询
// 根据id批量查询
Test
public void testFindBatch() {//创建主键集合ListInteger ids new ArrayList();ids.add(1);ids.add(2);ids.add(3);ListStudent students studentMapper.selectBatchIds(ids);students.forEach(System.out::println);
}
根据字段条件查询
// 根据字段条件查询
Test
public void testFindMap() {MapString,Object map new HashMap();map.put(sname,zhangsan);map.put(gender,m);//查询name为baizhan,gender为m的数据ListStudent students studentMapper.selectByMap(map);students.forEach(System.out::println);
}条件构造器查询
什么是条件构造器
在MybatisPlus中条件构造器是一个可以帮助我们使用面向对象的方式实现数据库操作的where条件的工具它将条件封装成了一个Wrapper对象。在使用时我们可以创建条件构造器对象其中Wrapper和AbstractWrapper是两个抽象类不能直接实例化我们在使用时常用的具体实现是QueryWrapper和UpdateWrapper。 条件构造器在查询和修改数据库数据时非常有用。在写一些复杂查询时我们可以创建一个测试类并在其中注入需要的Mapper然后创建一个条件构造器对象并使用该对象设置查询条件。最后可以调用Mapper的查询方法来获取结果。
条件构造器参数
查询方式说明or或条件语句and且条件语句like模糊查询 likenotLike模糊查询 not Likeexistsexists 条件语句notExistsnot Exists 条件语句isNullnull 值查询isNotNullis Not Null 查询inin 查询notInnot in 查询groupBy分组查询orderBy排序查询having分组后筛选eq等于 ne不等于 betweenbetween 条件语句gt大于ge大于等于lt小于le小于等于
条件构造器用法
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;public class Example {public static void main(String[] args) {// 创建一个测试类并在其中注入需要的 MapperExample example new Example();// 执行查询操作ListInteger result example.queryData();System.out.println(result);}public ListInteger queryData() {// 创建一个条件构造器对象QueryWrapperInteger wrapper new QueryWrapper();// 设置查询条件wrapper.lt(id, 10).gt(id, 5).like(name, A%).eq(type, 1);// 调用 Mapper 的查询方法ListInteger list this.mapper.queryList(wrapper);return list;}
}分页查询
1.在配置类或启动类配置分页插件
// 注册插件
Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;
}
2.分页查询
// 分页查询
Test
public void testFindPage() {//创建分页条件从第0条数据开始获取两条数据Page page new Page(2,2);// 分页查询第二个参数为QueryWrapper用于添加查询条件IPageStudent iPage studentMapper.selectPage(page, null);// 打印分页数据System.out.println(结果集iPage.getRecords());System.out.println(总页数iPage.getPages());System.out.println(总条数iPage.getTotal());System.out.println(当前页iPage.getCurrent());System.out.println(每页条数iPage.getSize());
} 总结
提示这里对文章进行总结
MybatisPlus是一个支持自动映射和简化数据库操作的Mybatis增强工具提供了丰富的注解和扩展功能用于简化数据库的增删改查操作。以下是MybatisPlus的增删改查总结
增使用Mapper接口的相应方法如insert()传入实体对象作为参数即可完成数据的新增。删使用Mapper接口的相应方法如delete()传入实体对象作为参数即可完成数据的删除。改使用Mapper接口的相应方法如update()传入实体对象作为参数并指定需要修改的列即可完成数据的修改。查使用Mapper接口的相应方法如selectOne()、selectList()等传入查询条件作为参数即可完成数据的查询。 此外MybatisPlus还支持条件构造器、分页查询等功能可以根据具体需求进行配置和使用。