增强版ORM框架-Mybatis plus

DBC 1.8K 1

简介:增强版ORM框架 mybatis plus介绍

  • 背景
    • 写一个数据库表的crud接口,编写实体类-》编写Controller-》编写Service-》编写DAO-》-》编写XML文件
    • 特别是管理后台,多数都是简单的CRUD,用普通的mybatis有些鸡肋
  • 介绍
    • 官网 https://baomidou.com/
    • 是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生
    • 是怎么增强的呢?已经封装好了一些crud方法,我们不需要再写xml了,直接调用这些方法就行,类似JPA但优于JPA

进阶版mybatis-plus-genarator

        <!-- mybatis -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.0</version>
        </dependency>
        <!-- 代码自动生成依赖 begin -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.4.1</version>
        </dependency>
        <!-- velocity -->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.0</version>
        </dependency>
        <!-- 代码自动生成依赖 end-->
还需要一个数据库驱动
		<!--数据库驱动-->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>8.0.15</version>
		</dependency>
温馨提示

上面内容放到pom文件里面,pom没有自动加载就自己手动刷新一下。
增强版ORM框架-Mybatis plus插图

温馨提示

如果是从增删改查文章来的,这里就可以直接回去了。下面是传送门

博主精品——一个最简单的增删改查(正统SpringBoot实现,标准流程操作,优雅!)

3年前 (2021-06-19) 6
增强版ORM框架-Mybatis plus插图2

小操作汇总

一些简单的Mybatic操作示例

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.xdclass.mapper.CouponMapper">

    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="net.xdclass.model.CouponDO">
        <id column="id" property="id" />
        <result column="category" property="category" />
        <result column="publish" property="publish" />
        <result column="coupon_img" property="couponImg" />
        <result column="coupon_title" property="couponTitle" />
        <result column="price" property="price" />
        <result column="user_limit" property="userLimit" />
        <result column="start_time" property="startTime" />
        <result column="end_time" property="endTime" />
        <result column="publish_count" property="publishCount" />
        <result column="stock" property="stock" />
        <result column="create_time" property="createTime" />
        <result column="condition_price" property="conditionPrice" />
    </resultMap>

    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, category, publish, coupon_img, coupon_title, price, user_limit, start_time, end_time, publish_count, stock, create_time, condition_price
    </sql>
    <!--扣减库存-->
    <update id="reduceStock">
        update coupon set stock=stock-1 where id = #{couponId} and stock>0
    </update>
</mapper>
温馨提示

这是一个简单的小例子,主要想说的是时间区间的查找方式,这样确实比较方便。还有简单的判断非空操作!

        lawyerDOIPage = lawyerMapper.selectPage(pageInfo, new QueryWrapper<LawyerDO>()
                .like(!StringUtils.isNullOrEmpty(name), "name", name)
                .like(!StringUtils.isNullOrEmpty(phone), "phone", phone)
                .like(!StringUtils.isNullOrEmpty(office), "professionalInstitutions", office)
                .like(!StringUtils.isNullOrEmpty(card), "practiceNumber", card)
                .between(!StringUtils.isNullOrEmpty(workingTime), "major", start, end)
        );

常见问题

有时候需要用到这个,启动类添加@MapperScan 后面是你包的位置!

@MapperScan(value = "me.zhengjie.modules.member.mapper")
温馨提示

小细节,有时候会识别不到你的mapper,除了上面那种还可以在这个位置添加!增强版ORM框架-Mybatis plus插图4

温馨提示

小细节,如果你的id不是自动递增,是用什么UUID、雪花算法等生成的,那么我们在DO类需要将id上面的增强版ORM框架-Mybatis plus插图6
删掉, @TableId(value = "id", type = IdType.AUTO),具体原因是因为现在你是自动递增的,而Mybatic-plus有很多的策略,你可以选择手动输入或者他提供的生成方式,比如雪花算法等!

发表评论 取消回复
表情 图片 链接 代码

  1. name
    name Lv 1

    博主无敌

分享