mybatis的增强工具 —— Mybatis Plus


官方文档:https://baomidou.com/

MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window) 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

我们在  的基础上进行改造。

Mybatis Plus快速入门

① 添加mybatis plus 依赖


    com.baomidou
    mybatis-plus
    3.3.2

注意版本的对应匹配。

1)配置 MapperScan


    
    
    

2)调整 SqlSessionFactory 为 MyBatis-Plus 的 SqlSessionFactory



    
    
    
    

通常来说,一般的简单工程,通过以上配置即可正常使用 MyBatis-Plus。

② 使用注解配置实体类

/**
 * @TableName 表名注解,标识实体类对应的表
 */
@TableName(value = "user")
public class UserInfo {

    /*主键注解, 数据库自增*/
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /*字段注解(非主键)*/
    @TableField(value = "username", exist = true)
    private String username;

    @TableField(value = "sex")
    private String sex;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    @Override
    public String toString() {

        return "User [id=" + id + ", username=" + username + ", sex=" + sex
                + "]";
    }
}

更多的注解参考:https://baomidou.com/pages/223848/#tablename

③ 自定义mapper xml的位置

在配置sqlSessionFactory bean时,指定xml的位置:



    
    
    
    
    
    

④  测试代码

@RunWith(SpringJUnit4ClassRunner.class)//表示整合JUnit4进行测试
@ContextConfiguration(locations={"classpath:applicationContext.xml"})//加载spring配置文件
public class BaseJunit4Test {
    

    @Autowired
    private UserInfoMapper userInfoMapper;

    @Test
    public void testSelectUserById() throws Exception {
        UserInfo user = userInfoMapper.selectUserById(1);
        System.out.println(user);

    }
}

Mybatis Plus使用分页插件



    
    
    
    
    
    
    
        
            
            
                
                
                
                
                
                
            
            
            
        
    


    

测试代码:

@Test
public void testSelectUserPage() throws Exception {
    Page page = new Page<>();
    page.setCurrent(1);
    page.setSize(2);
    IPage firstPageInfo = userInfoMapper.selectPage(page, null);
    System.out.println("count: " + firstPageInfo.getTotal());
    System.out.println("first page user list: " + firstPageInfo.getRecords());
    Page page1 = new Page<>();
    page1.setCurrent(2);
    page1.setSize(2);
    IPage secondPageInfo = userInfoMapper.selectPage(page1, null);
    System.out.println("count: " + secondPageInfo.getTotal());
    System.out.println("second page user list: " + secondPageInfo.getRecords());
}