2. Mybatis-Plus

1. Mybatis-Plus介绍与整合

MyBatis-Plus是基于MyBatis基础上的一个敏捷开发插件,它的作用是帮助我们快速完成对应数据表的增删改查操作。

  1. MyBatis-Plus(简称MP)是一个MyBatis的增强工具
  2. 自动实现Mapper CRUD操作,极致提高数据库开发效率。
  3. MP在MyBatis的基础上只做增强,不做改变
2. MyBatis-Plus整合三部曲
1. pom引入mybatis-plus依赖
<!--mybatis-plus依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus</artifactId>
            <version>3.4.2</version>
        </dependency>
2. SpringXML更改配置SqlSessionFactory实现类

applicationContext.xml

<!-- 2.3. 配置使Ioc容器实例化SqlSessionFactory-->
    <!-- SqlSessionFactoryBean 用于根据配置信息创建SqlSessionFactory, 不再需要我们自己手动编码创建 -->
    <!--    原生的MyBatis与Spring整合-->
    <!--    <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">-->
    <bean id="sessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
        <property name="dataSource" ref="datasource"/>
        <property name="mapperLocations" value="classpath:mappers/*.xml"/>
        <!-- 2.5. MyBatis配置文件地址 -->
        <property name="configLocation" value="classpath:mybatis-config.xml"/>
    </bean>
3. mybatis-config.xml增加MP分页插件

mybatis-config.xml添加

<plugins>
        <!-- 配置MyBatis Plus分页插件 -->
        <plugin interceptor="com.baomidou.mybatisplus.extension.plugins.PaginationInnerInterceptor"/>
    </plugins>
3. MyBatis-Plus开发三部曲
1. 创建实体类,@TableName / @Tableld / @TableField实现与表字段映射
  1. @TableName - 将实体类与表名映射
  2. @TableId - 说明对应属性是表的主键
  3. @TableField - 设置属性与列名的对应关系

创建Test类

package com.imooc.reader.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

@TableName("test")  // 说明实体对应那一张表
public class Test {
    @TableId(type = IdType.AUTO)
    @TableField("id")   // 说明属性对应哪个字段
    private Integer id;

    @TableField("content")     // 如果字段名与属性名相同或者符合驼峰命名规则,则TableField可省略
    private String content;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }
}

2. 创建Mapper接口继承BaseMapper(由MyBatis-Plus提供的,作为父接口,提供了CRUD方法的声明),创建Mapper XML

BaseMapper接口核心API

方法名用途
insert (entity)数据新增, 自动生成 insert sql ,根据@TableId 决定注解生成方式
updateById (entity)根据主键更新对应对象, 自动生成 delete sql
deleteById (id)根据主键删除数据 ,自动生成 delete sql
selectById (id)按主键查询对应的实体对象
selectList (queryWrapper)根据查询生成器 (QueryWrapper)的条件自动生成 sql 查询返回 List 集合
selectPage (page, queryWrapper)分页查询方法,自动生成分页 limit 子句, 返回 IPage 分页对象
3. 开发时注入Mapper对象,通过内置API实现CRUD操作。

MyBatisPlusTest.java

package com.imooc.reader;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.imooc.reader.entity.Test;
import com.imooc.reader.mapper.TestMapper;
import org.apache.ibatis.annotations.Mapper;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import javax.annotation.Resource;
import java.util.List;

// 初始化Ioc容器
@RunWith(SpringJUnit4ClassRunner.class)
// 指向要加载的配置文件
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})

public class MyBatisPlusTest {
    @Resource   // 注入之前准备好的接口
    private TestMapper testMapper;
    @org.junit.Test
    public void testInsert(){
        // 创建实体对象
        Test test = new Test();
        test.setContent("MyBatis Plus 测试");
        testMapper.insert(test);
    }
    @org.junit.Test
    public void testUpdate(){
        Test test = testMapper.selectById(4);
        test.setContent("MyBatis Plus 测试");
        testMapper.updateById(test);

    }
    @org.junit.Test
    public void testDelete(){
        testMapper.deleteById(4);
    }
    @org.junit.Test
    public void testSelect(){
        QueryWrapper<Test> queryWrapper = new QueryWrapper<Test>();
        queryWrapper.eq("id", 3);
        queryWrapper.gt("id", 2);
        List<Test> list = testMapper.selectList(queryWrapper);
        System.out.println(list.get(0));
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值