MybatisPlus实践积累

news/2024/7/2 1:25:41 标签: java, MybatisPlus, idea, spring boot, spring, 后端

MybatisPlus_0">MybatisPlus实践积累

文章目录

  • MybatisPlus实践积累
    • 1.MybatisPlus基础用法(SpringBoot项目中)
      • 新建Mapper软件包
    • 2.在Mapper中添加自定义方法(单表)
    • 3.关于MybatisPlus的批量插入
      • 写一个工具类
      • 写一个配置类
      • 到Mappe中添加这个方法
    • 4.关于MybatisPlus中的分页

MybatisPlusSpringBoot_4">1.MybatisPlus基础用法(SpringBoot项目中)

新建Mapper软件包

  1. 创建Mapper接口,同时实现BaseMapper<T>类,泛型为对应实体类

  2. 添加@Mapper注解

  3. 在主启动类上添加@MapperScan注解并添加扫描路径。例:@MapperScan("com.airweb.mapper")

  4. java">//Mapper接口
    @Mapper
    public interface AdminMapper extends BaseMapper<Admin> {
    }
    
    //主启动类
    @MapperScan("com.airweb.mapper")
    @MapperScan("com.airweb.listen")
    @SpringBootApplication
    public class AirWebApplication {
        public static void main(String[] args) {
            SpringApplication.run(AirWebApplication.class, args);
        }
    }
    
  5. 到这一步,就可以使用MP中的一些基本的增删改查方法了

2.在Mapper中添加自定义方法(单表)

只需要在Mapper接口中添加方法,并使用@Select、@Insert、@Delete、@Update等注解写入SQL语句

java">
/**根据Id查找管理员信息中的指定字段BuildingId
*/
@Select("select building_id from admin where admin_id=${id}")
int selectBuildingById(@Param("id")Long adminId);

//其他的增删改也一样,只是注解不同

MybatisPlus_53">3.关于MybatisPlus的批量插入

MybatisPlus其实也有提供一个批量插入的方法,但是那个方式本质上也是多次的调用insert(),所以不用,我们用下面这个insertBatchSomeColumn来实现真正的批量插入

关于 insertBatchSomeColumn(List list) 这个方法,大家可以直接复制下面的代码就可以了

写一个工具类

java">public class InsertBatchSqlInjector extends DefaultSqlInjector {
    @Override
    public List<AbstractMethod> getMethodList(Class<?> mapperClass) {
        List<AbstractMethod> methodList = super.getMethodList(mapperClass);
        methodList.add(new InsertBatchSomeColumn());
        return methodList;
    }
}

写一个配置类

java">@Component
public class MybatisPlusConfig {

    @Bean
    public InsertBatchSqlInjector easySqlInjector () {
        return new InsertBatchSqlInjector();
    }
}

到Mappe中添加这个方法

java">@Mapper
public interface ClassroomMapper extends BaseMapper<Classroom> {

    /**
     * 批量插入
     * @param classrooms
     */
    void insertBatchSomeColumn(@Param("list") List<Classroom> classrooms);
}

MybatisPlus_107">4.关于MybatisPlus中的分页

MybatisPlusBean_109">在MybatisPlus的配置类中添加Bean

java">@Configuration
public class MybatisPlusConfig {
    /**
     * 批量插入所需要的Bean
     * @return
     */
    @Bean
    public InsertBatchSqlInjector easySqlInjector () {
        return new InsertBatchSqlInjector();
    }
    
    /**
     * 分页插件所需要的Bean
     */
    //分页插件
    @Bean
    public MybatisPlusInterceptor paginationInnerInterceptor(){
        MybatisPlusInterceptor paginationInnerInterceptor = new MybatisPlusInterceptor();
        paginationInnerInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return paginationInnerInterceptor;
    }
}

然后就可以开始使用了,下面是具体操作代码:

java">//具体操作
//1、创建IPage对象---pageNum为第几页,pageSize为每页几条信息
IPage<Admin> page = new Page<>(pageNum,pageSize);
//调用Mapper接口中的方法
List<Admin> allAdmin = adminMapper.getAllAdmin(page);


//adminMapper接口中的getAllAdmin(page)方法
@Select("select * from admin")
List<Admin> getAllAdmin(IPage<Admin> page);

随机更新
更加详细的信息可以查看MybatisPlus的官网:MybatisPlus,这个还是挺好看懂的!冲!


http://www.niftyadmin.cn/n/5007735.html

相关文章

开发网上商城系统,我们需要注意些什么?

电子商务的迅猛发展&#xff0c;越来越多的企业开始意识到网上商城系统的重要性。然而&#xff0c;要打造一个成功的网上商城系统并不是一件简单的事情。下面就构建一个成功的网上商城系统所需的关键要素和注意事项有哪些作一些简单介绍&#xff0c;以帮助大家实现商业目标并提…

CTreeCtrl动态创建从字符串创建多个根节点

在CTreeCtrl中,根节点是通过插入一个顶级项来创建的。如果需要从字符串创建多个根节点,可以按照以下步骤进行: 创建CTreeCtrl对象并设置属性 C++ CTreeCtrl *pTree = new CTreeCtrl(); pTree->Create(WS_VISIBLE | WS_CHILD | TVS_HASBUTTONS | TVS_LINESATROOT, rect,…

python使用第三方库PyPDF2、PDFMiner或pdfplumber来解析PDF文件

使用第三方库PyPDF2、PDFMiner或pdfplumber来解析PDF文件可以实现PDF文件的内容提取、搜索和修改等功能。下面是使用PDFMiner来解析PDF文件的安装说明和代码示例&#xff1a; PDFMiner 下面是一些PDFMiner的常见操作&#xff1a; 1.安装PDFMiner库&#xff1a;在Python环境中…

单月打造8个10w+,情感类视频号如何爆火?

上月&#xff0c;腾讯公布了2023年Q2财报&#xff0c;其中&#xff0c;较为亮眼的是微信视频号的广告收入。据财报显示&#xff0c;二季度视频号用户使用时长与去年同期相比几乎翻倍&#xff0c;广告收入超过30亿元。作为微信生态的核心组件&#xff0c;视频号的内容生态呈现出…

高忆管理:六连板捷荣技术或难扛“华为概念股”大旗

在本钱商场上名不见经传的捷荣技术&#xff08;002855.SZ&#xff09;正扛起“华为概念股”大旗。 9月6日&#xff0c;捷荣技术已拿下第六个连续涨停板&#xff0c;短短七个生意日&#xff0c;股价累积涨幅逾越90%。公司已连发两份股票生意异动公告。 是炒作&#xff0c;还是…

如何解决ArcGIS中数据显示乱码问题?

你是否遇到过在ArcGIS中打开文件的时候&#xff0c;却显示乱码的问题呢&#xff1f; 其根本原因是字符编码造成的&#xff0c;这里就来分享一下如何解决在ArcGIS中导入数据后显示乱码的方法。 数据显示乱码 我们这里以一份“移动基站”数据为例&#xff0c;将它直接拖放到Arc…

Linux修改24小时制中国时区

1. 执行命令修改时区 tzselect 2. 时区依次选 亚洲 5) Asia 中国 9) China 北京 1) Beijing Time 确定 1) Yes 3. 执行命令使其生效 #TZAsia/Shanghai; export TZ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #上海时区 ln -sf /usr/share/zoneinfo/Etc/GMT…

算法训练营第四十三天(9.5)| 动态规划Part16:距离

目录 Leecode 583.两个字符串的删除操作 Leecode 72.编辑距离 Leecode 583.两个字符串的删除操作 题目地址&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 题目类型&#xff1a;最长子序列 class Solution { public:int minDistance(stri…