栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Springboot+Mybatis-plus开发模板

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Springboot+Mybatis-plus开发模板

MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
官方文档:https://mp.baomidou.com/guide/
以下是个人整理的Springboot+Mybatis-plus开发模板,适用于任何项目复制粘贴即可。

  1. 引入依赖

    com.baomidou
    mybatis-plus-boot-starter
    3.3.1

注意:如果整合其他框架可能包含mybatis,需要排除。例如:整合activiti就需要排除mybatis。


    org.activiti
    activiti-spring-boot-starter
    ${activiti.version}
    
    
        
            org.mybatis
            mybatis
        
    

  1. 添加配置类MyBatisPlusConfig
@EnableTransactionManagement // 开启事务管理
@MapperScan("com.xxx.xxx.mapper") // 扫描mapper接口
@Configuration
public class MyBatisPlusConfig {
    
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }
}
  1. 修改配置文件application.yml
mybatis-plus:
  # pojo路径别名,在mapper.xml中的resultType无需完全限定名。
  type-aliases-package: com.xxx.xxx.entities
  # xxxMapper.xml 路径
  mapper-locations: classpath*:com/xxx/xxx/mapper*.xml
  1. 定义Entity
@Data
@ApiModel("用户表")
@TableName("sys_user")
public class SysUser implements UserDetails {

    @TableId(value = "id", type = IdType.ASSIGN_ID)
    @ApiModelProperty("主键ID")
    private String id;

    @ApiModelProperty("用户名")
    private String username;

    @ApiModelProperty("密码")
    private String password;

    @ApiModelProperty("昵称")
    private String nickName;

    @ApiModelProperty("头像URL")
    private String imageUrl;

    @TableField(exist = false) // 不是表中字段
    @ApiModelProperty("封装用户权限")
    private Set authorities;

    
    @Override
    public Collection getAuthorities() {
        return authorities;
    }

    
    @Override
    public boolean isAccountNonExpired() {
        return true;
    }

    
    @Override
    public boolean isAccountNonLocked() {
        return true;
    }

    
    @Override
    public boolean isCredentialsNonExpired() {
        return true;
    }

    
    @Override
    public boolean isEnabled() {
        return true;
    }
}

  1. 定义mapper
    SysUserMapper.java,这里不需要增加其他方法,mp的baseMapper已经为我们做了CURD相关方法。
import com.baomidou.mybatisplus.core.mapper.baseMapper;

public interface SysUserMapper extends baseMapper {
}

SysUserMapper.xml,个性化sql






  1. 定义Service
    接口ISysUserService.java
import com.baomidou.mybatisplus.extension.service.IService;

public interface ISysUserService extends IService {
    SysUser findByUsername(String username);
}

接口实现:SysUserService.java
注意:不让忘了加@Service注解

@Service
public class SysUserService extends ServiceImpltext- implements ISysUserService {

    @Override
    public SysUser findByUsername(String username) {
        if(StringUtils.isEmpty(username)) {
            return null;
        }

        QueryWrapper wrapper = new QueryWrapper();
        wrapper.eq("username", username);

        // baseMapper 对应的是就是 SysUserMapper
        return baseMapper.selectOne(wrapper);
    }
}
  1. 测试
@SpringBootTest
public class TestUser {
    @Autowired
    ISysUserService sysUserService;

    @Test
    public void testUser() {
        SysUser sysUser = sysUserService.findByUsername("张三");
        System.out.println(sysUser.getUsername());
    }
}

总结:Mybatis-plus只是Mybatis的增加版,对于单表操作确实方便了很多,但是,如果是复杂查询也就是多表关联查询的话,建议还是写sql来解决。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/322454.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号