博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java Mybatis Plus 集成与使用
阅读量:2385 次
发布时间:2019-05-10

本文共 4100 字,大约阅读时间需要 13 分钟。

Mybatis Plus 简单使用

功能简介

什么是MyBatis-Plus?		 MyBatis-Plus(简称MP)是一个MyBatis的增强工具,提供给我们很多实用的插件。在Mybatis的基础上         只做增强不做改变,为简化我们开发,提高工作效率而生。    MyBatis-Plus的有些什么特性?       侵入:MyBatis-Plus是在MyBatis的基础上增强的,而没有做任何的改变,所以在项目中引入MyBatis                  Plus 不会对你的现在的MyBatis构架有任何的影响      依赖少:引入MyBatis-Plus要导入什么包呢?仅仅依赖MyBatis与MyBatis-Spring就可以了      损耗小:启动之后,会自动注入基本的CRUD,性能基本无消耗,直接面向对象操作      支持热加载:Mapper对应的XML支持热加载,对于简单的CRUD操作,甚至可以无XML启动      支持代码生成:采用代码或Maven插件可快速生成Mapper、Model、Service、Controller层代码,支持                             模板引擎,更 提供了超多的自定义配置让你使用

springboot集成

引入依赖

com.baomidou
mybatis-plus-boot-starter
3.1.0
com.baomidou
mybatis-plus-extension
3.1.0

替换mybaits 配置

mybatis-plus:  typeAliasesPackage: com.hieasy.iposbutteasybi.base.entity  mapperLocations: classpath:mappers/**/*.xml  configuration:    map-underscore-to-camel-case: true    default-fetch-size: 500    default-statement-timeout: 80

表、字段与实体映射

实体类

import com.alibaba.fastjson.annotation.JSONField;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.TableField;import com.baomidou.mybatisplus.annotation.TableId;import com.baomidou.mybatisplus.annotation.TableName;import lombok.Data;import java.util.Date;import java.util.Set;@Data@TableName("crm_user")public class User  {
private static final long serialVersionUID = 1L; @TableId(type = IdType.AUTO) private Integer id; private String userName; private String nickName; private String avatar; /*头像地址*/ private String password; private Integer sex; @JSONField(format = "yyyy-MM-dd") private Date birthday; private String telephone; private String email; private String address; private Integer deleteStatus; /*逻辑删除状态 0 未删除 1 删除*/ private Integer locked;/**是否锁定0 未锁定 1 锁定*/ private String description; @JSONField(format = "yyyy-MM-dd HH:mm:ss") private Date createTime; @JSONField(format = "yyyy-MM-dd HH:mm:ss") private Date updateTime; @TableField(exist = false) private Set
roles;}

MyBatis-Plus常用实体类注解

表名注解:@TableName
主键注解:@Tableld
乐观锁标记注解:@Version
字段注解:@TableField
序列主键策略注解:@KeySequence
其中实体无注解化可以如下设置:
当数据库的表字段名是驼峰命名时无需注解处理例如如果实体是CrmUser 这样就不需要写@TableName(“crm_user”)这样的注解
或者全局配置:下划线命名dbColumnUnderline设置为true,大写isCapitalMode设置为true

持久层

import com.baomidou.mybatisplus.core.mapper.BaseMapper;import com.hieasy.ecrm.entity.User;import org.apache.ibatis.annotations.Mapper;import org.springframework.stereotype.Repository;@Mapper@Repositorypublic interface UserMapper extends BaseMapper
{
}

至此就可以使用它自带的一些独特方法

例如:

User user=userMapper.selectById(id); List
userRoles=userRoleMapper.selectList(new QueryWrapper
() .eq("user_id", id));

条件构造器

简单的如eq,notin,等等QueryWrapper类,其余太复杂需要单独讲解

分页

先写配置文件

/** * MybatisPlus配置 */@Configurationpublic class MybatisplusConfig {
@Bean public PaginationInterceptor paginationInterceptor(){
return new PaginationInterceptor(); }}

配置好之后就可以让它的selectPage方法达到分页查询的效果

例如:

@Override    public Page
findAllByLike(String searchText, Page pageRequest) throws Exception {
QueryWrapper queryWrapper=new QueryWrapper
() .eq(StringUtils.isNoneBlank(searchText) ,"concat(user_name,'|','nick_name','|','telephone')", searchText); Page
userPage= (Page
) userMapper.selectPage(pageRequest,queryWrapper); return userPage; }

自定义语句分页

对于多表连接查询mp也提供了分页工具  用法:

dao在这里插入图片描述在这里插入图片描述

或者直接自己定义查询类

public interface UserMapper{
//可以继承或者不继承BaseMapper /** *

* 查询 : 根据state状态查询用户列表,分页显示 *

* * @param page * 翻页对象,可以作为 xml 参数直接使用,传递参数 Page 即自动分页 * @param state * 状态 * @return */ List
selectUserList(Pagination page, Integer state);}UserMapper.xml 等同于编写一个普通 list 查询,mybatis-plus 自动替你分页

转载地址:http://mcnab.baihongyu.com/

你可能感兴趣的文章
cobit成功案例
查看>>
Linux下的内网反弹实例
查看>>
Apache 漏洞之后缀名解析漏洞
查看>>
Sun Java Web Server version 7.0 update 7 remote stack overflow exploit
查看>>
Command execution with a MySQL UDF
查看>>
more with rpcclient
查看>>
ITIL项目手记四:证券公司ITIL项目的心得
查看>>
WINDOWS下搭建LDAP服务器
查看>>
二进制数据 + MySQL + PHP 怎样在Mysql中直接储存图片
查看>>
For Linux Mysql Udf
查看>>
Perl BackConnectShell + Rootlab t00l
查看>>
JBoss Autopwn Script
查看>>
OTPs: Using s/Key with SSH via OPIE
查看>>
使用arpwatch和arping来排查ARP攻击
查看>>
Linux硬件监控方法
查看>>
Linux系统安全工具之:Sxid和Skey
查看>>
arp工具简介_arptables_arpwatch
查看>>
linux core dump 知识整理
查看>>
RPM 校验软件包完整性
查看>>
OSSEC错误解决
查看>>