mybatis-plus笔记BaseMapper/ServiceImpl/IService/@TableName/@TableId@分页模糊查询

本文主要是介绍mybatis-plus笔记BaseMapper/ServiceImpl/IService/@TableName/@TableId@分页模糊查询,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、BaseMapper是mybatis-plus提供的,汇聚插入、更新、删除和查询等功能,简化sql代码。
2、ServiceImpl 是IService 的实现类,有两个泛型参数,一个参数为BaseMapper 也就是实体Mapper ,一个是实体类。
3、IService接口中包含的一系列的dao层交互操作,一般在服务层进行继承操作。
4、使用mybatisplus时,报错表和视图不存在,是因为框架直接用的类名到数据库找,如果不一致会报错,所以在entity那用@TableName告诉数据库里该表的名字;
@TableId,设置别名,就是updateById方法里用的id,但代码里实际用的是userId。

@TableName(value = "R$USER")
public class UserTest {@TableField("USER_ID")
//    @TableId使用的主键,就是updateById方法里的id@TableId(value = "USER_ID", type = IdType.AUTO)private Long userId;}
package cn.com.sparknet.order.service;import org.springframework.stereotype.Service;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;import cn.com.sparknet.entity.UserTest;
import cn.com.sparknet.order.dao.PageSearchDao;
/** ServiceImpl是mybatis提供的,在service层使用的。*/
@Service
public class PageSearchService extends ServiceImpl<PageSearchDao, UserTest>{//	用mybatis-plus实现新增public boolean plusSave(UserTest userTest) {//		方式1,save和updateById都是mybatis-plus提供的方法
//		if (userTest.getUserId() == null) {
//			return save(userTest);
//		}else {
//			return updateById(userTest);
//		} //		方式二saveOrUpdate是新增和修改的集合方法,就是方式一合并return saveOrUpdate(userTest);}
}

5、mybatisplus查询list()
6、mybatisplus删除removeById()
7、分页模糊查询
mybatis版本号3.3.0
(1)配置分页插件

package cn.com.sparknet.config;
import java.util.Collections;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;@Configuration
public class MybatisPlusConfig {@Beanpublic PaginationInterceptor paginationInterceptor() {PaginationInterceptor paginationInterceptor = new PaginationInterceptor();return paginationInterceptor;}
}

(2)Dao

package cn.com.sparknet.order.dao;
/** 分页查询*/import org.apache.ibatis.annotations.Mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;import cn.com.sparknet.entity.UserTest;// BaseMapper是mybatis-plus提供的,汇聚插入、更新、删除和查询等功能,简化sql代码。
@Mapper
public interface PageSearchDao extends BaseMapper<UserTest> {}

(3)controlle

//	分页查询
//	@RequestParam接收路由上参数/listPage?pageSize=3&pageNum=1&userName=aa@PostMapping("/listPage")public Page<UserTest> findList(@RequestParam Integer pageSize, @RequestParam Integer pageNum, @RequestParam String userName) {Page<UserTest> page = new Page<>(pageNum, pageSize);QueryWrapper<UserTest> queryWrapper = new QueryWrapper<>();
//		模糊查询的参数queryWrapper.like("USER_NAME", userName);return pageSearchService.page(page, queryWrapper);}

8、導出excel

//	导出接口@GetMapping("/export")public void export(HttpServletResponse response) throws Exception {
//		(1)获取要导出的数据到listList<UserTest>list = pageSearchService.list();//		(2)引入导出工具,自定义列别名ExcelWriter writer = ExcelUtil.getWriter();writer.addHeaderAlias("userId", "用户Id");writer.addHeaderAlias("userName", "用户名");writer.addHeaderAlias("duty", "职务");writer.addHeaderAlias("tel", "电话");//		写出文件writer.write(list, true);//		设置浏览器响应格式//response为HttpServletResponse对象response.setContentType("application/vnd.ms-excel;charset=utf-8"); //test.xls是弹出下载对话框的文件名,不能为中文,中文需编码response.setHeader("Content-Disposition","attachment;filename=test.xls"); ServletOutputStream out = response.getOutputStream(); writer.flush(out, true);// 关闭writer,释放内存writer.close();}}

这篇关于mybatis-plus笔记BaseMapper/ServiceImpl/IService/@TableName/@TableId@分页模糊查询的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/886324

相关文章

MyBatis中$与#的区别解析

《MyBatis中$与#的区别解析》文章浏览阅读314次,点赞4次,收藏6次。MyBatis使用#{}作为参数占位符时,会创建预处理语句(PreparedStatement),并将参数值作为预处理语句... 目录一、介绍二、sql注入风险实例一、介绍#(井号):MyBATis使用#{}作为参数占位符时,会

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析

mybatis执行insert返回id实现详解

《mybatis执行insert返回id实现详解》MyBatis插入操作默认返回受影响行数,需通过useGeneratedKeys+keyProperty或selectKey获取主键ID,确保主键为自... 目录 两种方式获取自增 ID:1. ​​useGeneratedKeys+keyProperty(推

MyBatis-Plus 中 nested() 与 and() 方法详解(最佳实践场景)

《MyBatis-Plus中nested()与and()方法详解(最佳实践场景)》在MyBatis-Plus的条件构造器中,nested()和and()都是用于构建复杂查询条件的关键方法,但... 目录MyBATis-Plus 中nested()与and()方法详解一、核心区别对比二、方法详解1.and()

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

mysql表操作与查询功能详解

《mysql表操作与查询功能详解》本文系统讲解MySQL表操作与查询,涵盖创建、修改、复制表语法,基本查询结构及WHERE、GROUPBY等子句,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随... 目录01.表的操作1.1表操作概览1.2创建表1.3修改表1.4复制表02.基本查询操作2.1 SE

Golang如何用gorm实现分页的功能

《Golang如何用gorm实现分页的功能》:本文主要介绍Golang如何用gorm实现分页的功能方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景go库下载初始化数据【1】建表【2】插入数据【3】查看数据4、代码示例【1】gorm结构体定义【2】分页结构体

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN

XML重复查询一条Sql语句的解决方法

《XML重复查询一条Sql语句的解决方法》文章分析了XML重复查询与日志失效问题,指出因DTO缺少@Data注解导致日志无法格式化、空指针风险及参数穿透,进而引发性能灾难,解决方案为在Controll... 目录一、核心问题:从SQL重复执行到日志失效二、根因剖析:DTO断裂引发的级联故障三、解决方案:修复