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

本文介绍了如何在Spring项目中使用Mybatis-Plus进行数据持久化,包括BaseMapper的简化功能、ServiceImpl与IService的配合、处理表名映射问题、分页查询和导出Excel的方法。
摘要由CSDN通过智能技术生成

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;
    }
//xxxxx自定义的包名
package cn.com.xxxxx.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.xxxxx.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 {

    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        return paginationInterceptor;
    }
}

(2)Dao

package cn.com.xxxxxx.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)获取要导出的数据到list
		List<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();
	}
	                                         
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值