zoukankan      html  css  js  c++  java
  • MyBatisPlus入门案例

    MyBatisPlus入门案例

    • 准备数据库表

    • 新建一个springboot工程

    • 导包

      <dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          <optional>true</optional>
      </dependency>
      
      <dependency>
          <groupId>com.baomidou</groupId>
          <artifactId>mybatis-plus-boot-starter</artifactId>
          <version>3.4.0</version>
      </dependency>
      
       <!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-generator -->
      <dependency>
          <groupId>com.baomidou</groupId>
          <artifactId>mybatis-plus-generator</artifactId>
          <version>3.4.0</version>
      </dependency>
      <!-- 模板引擎 -->
      <dependency>
          <groupId>org.apache.velocity</groupId>
          <artifactId>velocity-engine-core</artifactId>
          <version>2.0</version>
      </dependency>
      
      <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>8.0.11</version>
      </dependency>
      

    注意:引入 MyBatis-Plus之后请不要再次引入MyBatis以及MyBatis-Spring,以避免因版本差异导致的问题

    • 在application.yml配置文件中添加数据库的相关配置:

      # 配置数据库
      spring:
        datasource:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/mybatis_plus?characterEncoding=utf8&serverTimezone=GMT%2B8
          username: root
          password: 123456
      # 配置日志
      mybatis-plus:
        configuration:
          log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
      
    • 在 Spring Boot 启动类中添加@MapperScan注解,扫描 Mapper 文件夹

      package com.yl;
      
      import org.mybatis.spring.annotation.MapperScan;
      import org.springframework.boot.SpringApplication;
      import org.springframework.boot.autoconfigure.SpringBootApplication;
      
      @SpringBootApplication
      @MapperScan("com.yl.mapper")//扫描mapper类
      public class MybatisPlus01Application {
      
          public static void main(String[] args) {
              SpringApplication.run(MybatisPlus01Application.class, args);
          }
      
      }
      
    • 实体类

      package com.yl.bean;
      
      import lombok.Data;
      import lombok.NoArgsConstructor;
      
      import java.io.Serializable;
      
      /**
       * 用户实体类
       */
      @Data
      @NoArgsConstructor
      public class User implements Serializable {
          private Integer id;
          private String name;
          private Integer age;
          private String email;
      }
      
    • Mapper类

      package com.yl.mapper;
      
      import com.baomidou.mybatisplus.core.mapper.BaseMapper;
      import com.yl.bean.User;
      import org.springframework.stereotype.Repository;
      
      /**
       * 用户映射接口
       */
      @Repository
      public interface UserMapper extends BaseMapper<User> {
      
      }
      
    • 测试类

      package com.yl.mybatis_plus_01;
      
      import com.yl.bean.User;
      import com.yl.mapper.UserMapper;
      import org.junit.jupiter.api.Test;
      import org.junit.runner.RunWith;
      import org.springframework.beans.factory.annotation.Autowired;
      import org.springframework.boot.test.context.SpringBootTest;
      import org.springframework.test.context.junit4.SpringRunner;
      
      import java.util.List;
      
      @SpringBootTest
      @RunWith(SpringRunner.class)
      class MybatisPlus01ApplicationTests {
          @Autowired
          private UserMapper userMapper;
      
          /**
           *查询所有
           */
          @Test
          void contextLoads() {
              List<User> userList=userMapper.selectList(null);
      
              userList.forEach(System.out::println);
        }
      
          /**
           * 添加用户
           */
          @Test
          void add(){
              User user=new User();
              user.setId(6);
              user.setAge(17);
              user.setName("yl01");
              user.setEmail("123@qq.com");
      
              userMapper.insert(user);
          }
      
          /**
           * 根据id修改用户
           * mybatisplus的修改sql语句是动态sql,没有修改的字段会保留原来的值
           */
          @Test
          void update(){
              User user=new User();
              user.setId(6);
              user.setEmail("12345@qq.com");
      
              userMapper.updateById(user);
          }
          
           /**
           * 根据id删除用户
           */
          @Test
          void delete(){
              userMapper.deleteById(7);
          }
      
      }
      
      

      复杂的查询(删改同理)

      // 测试批量查询!
      @Test public void testSelectByBatchId(){
          //查询id为1、2、3的用户
          List<User> users = userMapper.selectBatchIds(Arrays.asList(1, 2, 3));
          users.forEach(System.out::println); 
      }
      
      // 按条件查询之使用map操作
      @Test public void testSelectByBatchIds(){
          HashMap<String, Object> map = new HashMap<>(); 
          // 自定义要查询,查询name为yl01且age为3的用户
          map.put("name","yl01");
          map.put("age",3); 
          List<User> users = userMapper.selectByMap(map); 
          users.forEach(System.out::println);
      }
      
    记得快乐
  • 相关阅读:
    array and ram
    char as int
    pointer of 2d array and address
    Install SAP HANA EXPRESS on Google Cloud Platform
    Ubuntu remount hard drive
    Compile OpenSSL with Visual Studio 2019
    Install Jupyter notebook and tensorflow on Ubuntu 18.04
    Build OpenCV text(OCR) module on windows with Visual Studio 2019
    Reinstall VirtualBox 6.0 on Ubuntu 18.04
    Pitfall in std::vector<cv::Mat>
  • 原文地址:https://www.cnblogs.com/Y-wee/p/13899017.html
Copyright © 2011-2022 走看看