Mybatis-puls——入门案例和概述和CURD功能实现

前言

虽然但是,现在MyBatis_puls并不支持springboot3.x版本。

MyBatis_puls就像SpringBoot是为了快速开发Spring程序一样,这个是为了快速开发MyBatis程序。基于SpringBoot使用MP的开发流程 

按照下面这个模板造就对了。

SpingBoot——SB整合MB的web项目模板_北岭山脚鼠鼠的博客-CSDN博客

使用如下建表语句

create table mpdb(
    id bigint(20) primary key not null auto_increment,
    name varchar(32) ,
    password varchar(32),
    age int,
    tel varchar(32)
    )AUTO_INCREMENT=1;

 按照上面流程搞完之后,还要再pom.xml里面新加mybatis-puls的依赖,官方库里面只提供了mybatis的坐标。

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.2</version>
        </dependency>

注意:依赖这里如果同时引入mybatis和mybatis-puls,就好像下面这个,后面运行会报错,mybatis-puls里面自带了mybatis,两者冲突。要删除mybatis的坐标。

      <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.2</version>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.3.1</version>
        </dependency>

 数据层实体类

package com.example.pojo;

public class User {
    private Long id;
    private String name;
    private String password;
    private Integer age;
    private String tel;

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", password='" + password + '\'' +
                ", age=" + age +
                ", tel='" + tel + '\'' +
                '}';
    }

    public Long getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }
}

Mapper层接口实现

只要继承一个BaseMaper并指定类型即可,然后就结束了?

@Mapper
public interface UserMapper extends BaseMapper<User>{
}

然后在测试类当中运行测试,然后出现以下错误,网上没找到解决方案,一个比较靠谱的说法是junit5和junit4什么的JUnit 5 测试 Spring 引擎的时候提示 junit-vintage 错误 - 知乎 

但是我换了我别的项目重新运行一次就好了,顺便把那个配置文件里面type去掉了。

spring:
  #数据库连接信息
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/testyhy
    username: root
    password: 123456

 mybatis-puls相比mybatis直接把sql语句都省略了,就是不知道面对一些复杂查询应该怎么解决。

 顺便说一下,这个东西把下划线命名和驼峰命名也一起识别了。

概述

这个工具是国人发明的,所以是拼音网址。 

标准数据层开发

CURD工程

add功能实现

使用如下语句

    @Test
    public void testadd(){
        mpdb mpdb=new mpdb();
        mpdb.setName("yhy");
        mpdb.setPassword("123456");
        userMapper.insert(mpdb);
        System.out.println(userMapper.selectList(null));
    }

 但是输出发现,自增的id不对劲.

 delete功能实现

可以看见有四种删除。 

实现如下,成功删除上面那个特别长的id 

    @Test
    public void testdelete(){
        userMapper.deleteById(1663895252760383489L);
    }

update功能实现

使用如下语句

    @Test
    public void testupdate(){
        mpdb mpdb=new mpdb();
        mpdb.setId(1L);
        mpdb.setName("tom666");
        userMapper.updateById(mpdb);
        
    }

成功更新数据

如果使用mybatis进行开发,在更新的时候还要全部都指定值才可以,这里却是只修改了不为空的属性列。实现了动态sql的效果。

猜你喜欢

转载自blog.csdn.net/m0_62327332/article/details/130975272