Mybatis-plus基础

学习目标:

  • 一周学完mybatis-plus(b站尚硅谷视频)

学习内容:

  1. mybatis-plus特性和数据库(以下简称mps)
  2. 搭建mps工程和基本配置(springboot版本)
  3. mps中BaseMapper的使用和测试

1. mps特性和数据库

mps相对于mybatis来说,像是mybatis的增强版,提高了开发中的效率。
其部分特性如下:
(1)无侵入:引入后不会对现有工程有影响;
(2)损耗小:启动即会自动注入基本CURD,性能基本无损耗,直接面向对象操作
(3)强大的CURD操作:内置通用Mapper(BaseMapper)、通用Service(IService), 仅仅需要少量的配置实现表单大部分CURD操作。
(4)支持Lambda形式调用:通过Lambda表达式,方便的编写各类查询条件
(5)内置分页插件:基于Mybatis物理分页,配置好插件后,写分页等同于普通List查询
支持的数据库:MySQL,Oracle等常见数据库

2. 搭建mps工程和基本配置(springboot版本)

在常规配置一个springboot工程后,pom.xml放入如下依赖项:

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
<!--        用于简化实体类开发-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
<!--        mybatis-plus启动器-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>
<!--    mysql驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
           <version>8.0.22</version>
        </dependency>
    </dependencies>

在navicat新建查询导入表和数据

CREATE DATABASE `mybatis_plus` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;
use `mybatis_plus`;
CREATE TABLE `user` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`name` varchar(30) DEFAULT NULL COMMENT '姓名',
`age` int(11) DEFAULT NULL COMMENT '年龄',
`email` varchar(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');

接下来在resources中配置application.yml

spring:
  #配置数据源信息
  datasource:
    #配置数据源类型
    type: com.zaxxer.hikari.HikariDataSource
    #配置连接数据库的各个信息
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatis_plus?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&useSSL=false&rewriteBatchedStatements=true
    username: root
    password: root
 #为mps的日志
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

在src目录下创建实体类User和Usermapper(看截图)
实体类User
UserMapper代码
在SpringBoot启动类中添加@MapperScan注解,扫描mapper包
启动类

3. mps中BaseMapper的使用和测试

mps的基本CRUD在内置的BaseMapper中都得到了实现,可直接使用。
首先在test下创建测试类
CRUD测试类
创建UserMapper对象
(1)插入–在BaseMapper中,如下所示:
插入方法
测试方法如下:

   @Test
    public void testInsert(){
        //新增用户信息  INSERT INTO user ( id, name, age, email ) VALUES ( ?, ?, ?, ? )
        User user=new User();
        user.setName("张三");
        user.setAge(23);
        user.setEmail("zhangsan@guigu.com");
        int result = userMapper.insert(user);
        System.out.println("result:"+result);
        System.out.println("id:"+user.getId());
    }

(2)删除–在BaseMapper中,删除有多种形式,如下所示



测试类如下所示:

@Test
    public void testDelete(){
        //DELETE FROM user WHERE id=?
//        int result = userMapper.deleteById(1620994374206799873L);
//        System.out.println("result:"+result);

        //根据map的条件来删除
//        Map<String,Object> map=new HashMap<>();
//        map.put("name","张三");
//        map.put("age",23);
//        int i = userMapper.deleteByMap(map);
//        System.out.println("i:"+i);

        //DELETE FROM user WHERE id IN ( ? , ? , ? )  根据多个id实现批量删除
        List<Long> list = Arrays.asList(1L, 2L, 3L);
        int result = userMapper.deleteBatchIds(list);
        System.out.println("result:"+result);
    }

(3)修改–在BseMapper中,多种如下所示:


测试类如下:

  @Test
    public void testModify(){
        //UPDATE user SET name=?, email=? WHERE id=?  修改用户信息
        User user=new User();
        user.setId(4L);
        user.setName("李四");
        user.setEmail("lisi@atguigu.com");
        int result = userMapper.updateById(user);
        System.out.println("result:"+result);
    }

(4)查询–在BaseMapper中方法展示:


测试类如下:

    @Test
    public void testSelect(){
        //SELECT id,name,age,email FROM user WHERE id=?  通过id查询用户信息
//        User user= userMapper.selectById(4L);
//        System.out.println(user);


        //SELECT id,name,age,email FROM user WHERE id IN ( ? , ? )  根据多个id查询多个用户信息
//        List<Long> list = Arrays.asList(4L, 5L);
//        List<User> users = userMapper.selectBatchIds(list);
//        users.forEach(System.out::println);

//        Map<String,Object> map=new HashMap<>();
//        map.put("name","李四");
//        map.put("age",21);
//        List<User> users = userMapper.selectByMap(map);
//        users.forEach(System.out::println);
        //自定义方法   se                                                                                                                                                                                                                                                                                                                           lect id,name,age,email from user where id =?
        Map<String, Object> map = userMapper.SelectMapById(4L);
        System.out.println(map);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值