专栏首页gfumybatis-plus的使用

mybatis-plus的使用

mybatis-plus是对mybatis的扩展,非常的好用,不管对单表还是多表都提供了分页的功能,后续也有分页的例子,而且针对单表的增删改查只需要继承BaseMapper,再根据QueryWrapper和UpdateWrapper就可以简单的对单表进行操作了,最后有一个简单的图解供参考。

  1. 继承baseMapper
  2. 写一个DO
  3. 单测

多表的分页只需要在Mapper里的方法中传入Page这个对象就可以自动分页了,mybatis-plus是基于mybatis,也要引入对应的包。本项目是基于gradle构建的。 用到的jar包,如果是springboot项目:

    // https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter
    compile group: 'org.mybatis.spring.boot', name: 'mybatis-spring-boot-starter', version: '2.1.0'

    // https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter
    compile group: 'com.baomidou', name: 'mybatis-plus-boot-starter', version: '3.2.0'

如果单独引包:

    // https://mvnrepository.com/artifact/org.mybatis/mybatis
    compile group: 'org.mybatis', name: 'mybatis', version: '3.5.2'

    // https://mvnrepository.com/artifact/com.baomidou/mybatis-plus
    compile group: 'com.baomidou', name: 'mybatis-plus', version: '3.2.0'

1.写一个mapper,继承BaseMapper

package org.sjframework.learn.mybatis.plus;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.sjframework.learn.mybatis.UserDO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * mybatis-plus
 *
 * @author 719383495@qq.com |719383495qq@gmail.com |gfu
 * @date 2019/10/18
 */
@Mapper
public interface UserDaoPlus extends BaseMapper<UserDO> {

}

2.单表属性

package org.sjframework.learn.mybatis;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;

/**
 * user dao
 *
 * @author 719383495@qq.com |719383495qq@gmail.com |gfu
 * @date 2019/10/18
 */
@TableName("t_user")
public class UserDO {

    private String userId;

    private String leader;

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getLeader() {
        return leader;
    }

    public void setLeader(String leader) {
        this.leader = leader;
    }

    @Override
    public String toString() {
        return "UserDO{" +
                "userId='" + userId + '\'' +
                ", leader='" + leader + '\'' +
                '}';
    }
}

3.用mybatis-plus给的包装类,操作单表。会写下面的一种,其他的语句举一反三。

package org.sjframework.learn.mybatis;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.sjframework.learn.mybatis.plus.UserDaoPlus;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.List;

/**
 * mybatis test
 *
 * @author 123456789@qq.com |123456789@gmail.com |gfu
 * @date 2019/10/17
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class MybatisPlusTest {

    @Autowired
    UserDaoPlus userDaoPlus;

    @Test
    public void loadContext() {
        Page<UserDO> page = new Page<>(2, 100);
        QueryWrapper<UserDO> wrapper = new QueryWrapper<>();

        // 分页
        IPage<UserDO> mapIPage = userDaoPlus.selectPage(page, wrapper);
        System.out.println(mapIPage.getRecords());
        List<UserDO> records = mapIPage.getRecords();
        records.forEach(i -> System.out.println(i));

        // 筛选
        wrapper.eq("user_id", "U00003");
        List<UserDO> res = userDaoPlus.selectList(wrapper);
        System.out.println(res);
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • java读取txt中的内容,批量处理重复的内容,对数据库字段的修改非常有用!

    先来一个简单的例子,比如给了我们db table中的几个字段,我们需要拼写sql语句去重复插入。

    gfu
  • 听说你java项目可以运行?打包成 jar后路径找不到问题的完美解决方案

    gfu
  • spring中如何注入的

    不知道你们有没有想过这个问题,spring在注入的过程中,到底是注入的是接口还是实现类 在开发过程中,有些地方有些迷惑,我们也没有过多的去思考,接下来简单的说...

    gfu
  • Mybatis 基础介绍与逆向工程的构建

    Mybatis系列: Mybatis 基础介绍与逆向工程的构建 :https://www.jianshu.com/p/1c18db4d7a38 Mybati...

    zoro
  • org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.gong.mybatis.da

    在mybatis全局配置文件中利用mappers中的mapper中的class属性配置sqll映射文件时出现该问题:以EmployeeMapper.java和E...

    绝命生
  • 【晓快讯】小程序搜索规则又改了 / 用微信开发票可抽 2 次奖

    12 月 8 日,有读者向知晓程序(微信号 zxcx0101)爆料称,微信小程序再次对小程序搜索功能和「附近的小程序」功能进行更新。

    知晓君
  • 小程序从零开始开发到上线的过程

    1:注册 用没有注册过微信公众平台的邮箱注册一个微信公众号, 申请帐号 ,网址: https://mp.weixin.qq.com/ 根据指引填写信息和提交相...

    王小婷
  • 一篇搞定,小程序从零开发到上线

    1:注册 用没有注册过微信公众平台的邮箱注册一个微信公众号, 申请帐号 ,网址: https://mp.weixin.qq.com/ 。

    谭庆波
  • Caused by: org.hibernate.HibernateException: Unanticipated return type [java.lang.Long] for UUID ...

    Caused by: org.hibernate.HibernateException: Unanticipated return type [java.lan...

    一个会写诗的程序员
  • Selenium结合Unirest和JTwig进行API测试

    前言:关于如何使用selenium webdriver测试REST api的问题,你可以在StackOverflow.com上看到很多相关的问题。不熟悉自动化...

    软测小生

扫码关注云+社区

领取腾讯云代金券