Mybatis-Plus

简介: Mybatis-Plus

一、Mybatis-Plus



1.·MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具

2.·MP在MyBatis 的基础上只做增强不做改变

3.·为简化开发、提高效率而生


二、Mybatis Plus特性



1.@无侵入

2.·@损耗小

3.@强大的CRUD

4.@多种数据库

5.·@内置分页

6.·@内置主键生成策略


三、Mybatis Plus开发套路



  1. Maven依赖mybatis-plus(v3.1.0去掉mybatis与mybatis-spring)


<dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus</artifactId>
            <version>3.1.0</version>
        </dependency>


  1. SessionFactory设置为MybatisSqlSessionFactoryBean

<bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
        <!--关联数据源-->
        <property name="dataSource" ref="dataSource"/>
        <!--配置文件地址-->
        <property name="configLocation" value="classpath:mybatis-config.xml"/>
        <!--mapper XML文件保存目录-->
        <property name="mapperLocations" value="classpath:mappers/*.xml"/>
        <!-- mapper resource="goods.xml" -->
    </bean>


  1. 实体类增加注解描述映射关系

//@TableName设置实体与表的对应关系
@TableName("t_goods_detail")
public class GoodsDetail {
    //@TableId用于设置主键属性
    //IdType.AUTO是指自动利用Mysql底层的自动生成功能产生主键
    //主键生成后会自动回填到gdId属性
    @TableId(type = IdType.AUTO)
    private Integer gdId;
    private Integer goodsId;//goods_id
    //如果属性与字段名对应不上,则需要使用@TableField进行说明
    @TableField("gd_pic_url")
    private String picUrl;//gd_pic_url
//    @TableField("gd_order")
    private Integer gdOrder;
    public Integer getGdId() {
        return gdId;
    }
    public void setGdId(Integer gdId) {
        this.gdId = gdId;
    }
    public Integer getGoodsId() {
        return goodsId;
    }
    public void setGoodsId(Integer goodsId) {
        this.goodsId = goodsId;
    }
    public String getPicUrl() {
        return picUrl;
    }
    public void setPicUrl(String picUrl) {
        this.picUrl = picUrl;
    }
    public Integer getGdOrder() {
        return gdOrder;
    }
    public void setGdOrder(Integer gdOrder) {
        this.gdOrder = gdOrder;
    }
}


4.Mapper接口继承BaseMapper

//BaseMapper定义了CRUD的方法声明,在运行时会自动根据实体的注解生成对应的SQL语句
public interface GoodsDetailMapper extends BaseMapper<GoodsDetail> {
    /**
     * 自定义SQL分页查询
     * @param page 第一个对象固定为分页对象
     * @param param 第二个参数Map向SQL传递多参数,但要使用@Param()定义前缀
     * @return 返回分页结果
     */
    public IPage<Map> selectMap(IPage page ,@Param("p") Map param);
}


5.xml文件


p对应参数@parm("p")


<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itlaoqi.ssm.mapper.GoodsDetailMapper">
    <!--使用mybatis-plus分页插件后,必须在引用参数时增加#{前缀.xxx}-->
    <select id="selectMap" parameterType="java.util.Map" resultType="java.util.LinkedHashMap">
        select
          d.* , g.title
        from
         t_goods_detail d , t_goods g
         where
         d.goods_id = g.goods_id
         and d.gd_order = #{p.order}
         and d.goods_id = #{p.goodsId}
    </select>
</mapper>


四、QueryWrapper查询构造器



@GetMapping("/qw")
    @ResponseBody
    public String testQueryWrapper(){
        /*Mybatis使用QueryWrapper对象简化查询过程*/
        QueryWrapper<GoodsDetail> queryWrapper = new QueryWrapper<GoodsDetail>();
        /**
         * eq 代表精准匹配
         * between 范围匹配
         * like 模糊匹配
         */
        queryWrapper.eq("goods_id", 739);
        queryWrapper.between("gd_order", 100, 501);
        queryWrapper.likeLeft("gd_pic_url", "ED");
        List<GoodsDetail> list = goodsDetailMapper.selectList(queryWrapper);
        for (GoodsDetail gd : list) {
            System.out.println(gd.getGoodsId() + ":" + gd.getPicUrl());
        }
        return "SUCCESS";
    }


五、Mybatis-Plus分页查询


@GetMapping("/p")
    @ResponseBody
    public IPage testPagination(Integer p , Integer r){
        QueryWrapper<GoodsDetail> queryWrapper = new QueryWrapper<GoodsDetail>();
        queryWrapper.eq("gd_order", 100);
        IPage page = new Page(p,r);
        IPage pageResult = goodsDetailMapper.selectPage(page, queryWrapper);
        return pageResult;
    }




相关文章
|
SQL Java 数据库连接
MyBatis大全
MyBatis大全
51 0
|
Java 数据库连接 mybatis
|
SQL 算法 Java
Mybatis-plus超详细讲解(2022)
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。
3241 1
|
3月前
|
SQL Java 数据库连接
Mybatis(四)
Mybatis(四)
35 0
|
5月前
|
SQL Java 数据库连接
MyBatis-Plus详细介绍
MyBatis-Plus是基于MyBatis框架的增强工具,致力于简化MyBatis的开发。它提供了一系列的增强功能,包括代码生成器、分页查询、性能分析等,大大提高了开发效率。
46 0
|
Java 数据库连接 测试技术
Mybatis-PLUS详解
Mybatis-PLUS详解
226 0
|
5月前
|
SQL 缓存 Java
mybatis使用总结
mybatis使用总结
|
10月前
|
Java 数据库连接 测试技术
mybatis中@Many
mybatis中@Many
88 0
|
XML Java 数据库连接
MyBatis-Plus
MyBatis-Plus
53 0
|
XML Java 数据库连接
MyBatis-Plus使用
MyBatis-Plus使用