Mybatis plus简介

Mybatis Plus是一个针对Mybatis的增强工具,旨在简化Mybatis的开发,提供无侵入、损耗小的CRUD操作,内置通用Mapper和服务,支持Lambda形式调用,以及强大的条件构造器。文章介绍了Mybatis Plus的背景、基本用法、代码生成器、IDEA插件MybatisX,并探讨了使用过程中可能遇到的问题和解决方案。
摘要由CSDN通过智能技术生成

Mybatis基本已是Java数据库访问层的标配了,像Hibernate、JPA这样的ORM的组件反而因为较重的设计和较高复杂度,使用反而没有那么广泛。就像J2EE虽然高大上,最后还是Spring开启了Without J2EE的时代。设计和架构有时候还是得接地气。Mybatis就是这样一款接地气的组件,甚至开始使用的时候感觉写Mapper、配置XML、书写SQL还是会觉得重复、繁琐。即便有了代码生成器和Example样板代码方法,还是感觉维护麻烦,特别是有字段增删的时候。这个时候Mybatis plus组件的增强性功能就体现出优势了。

背景、原理

愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。

  • 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
  • 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
  • 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作
  • 更有强大的条件构造器,满足各类使用需求
  • 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
  • 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题

Mybatis的典型代码

代码生成器配置中的表配置:

 <table tableName="t_user" domainObjectName="User"
               enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               selectByExampleQueryId="false"/>

生成的实体Bean

@Data
public class User {
   
    /**
     * 主键
     */
    private Integer id;

    /**
     * 用户名
     */
    private String userName;

    /**
     * 更新时间
     */
    private Date updatedTime;
}

生成的Mapper

public interface UserMapper {
   
    int deleteByPrimaryKey(Integer id);

    int insert(User record);

    int insertSelective(User record);

    User selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(User record);

    int updateByPrimaryKey(User record);
}

生成的xml

<mapper namespace="x.xx.dao.mysql.UserMapper">
  <resultMap id="BaseResultMap" type="x.xx.domain.mysql.User">
    <id column="id" jdbcType="INTEGER" property="id" />
    <result column="user_name" jdbcType="VARCHAR" property="userName" />
    <result column="updated_time" jdbcType="TIMESTAMP" property="updatedTime" />
  </resultMap>
  <sql id="Base_Column_List">
    id, user_name, updated_time
  </sql
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值