cuteaddanina

再看,再看,就把你吃掉

 

<6>MybatisPlus快速上手

(示例项目:mpdemo。项目路径:C:\somethingfromeF\25SummerVacation\mpdemo)

一、ORM

 <1>介绍

1.解决面向对象与关系数据库存在的互不匹配现象的一种技术。

image

二、MyBatis-Plus

<1>介绍

1.MyBatis是一款优秀的数据持久层ORM框架,被广泛地应用于应用系统。

2.MyBatis-Plus是一个 MyBatis 的增强工具

三、使用🧠

<1>pom.xml文件添加依赖

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </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.4.2</version>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>3.0.3</version> <!-- 使用最新版本 -->
        </dependency>

        <!--mysql驱动依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.19</version>
        </dependency>
        <!--引入druid数据连接池-->
<!--        <dependency>-->
<!--            <groupId>com.alibaba</groupId>-->
<!--            <artifactId>druid-spring-boot-starter</artifactId>-->
<!--            <version>1.2.6</version>-->
<!--        </dependency>   和自带的数据连接池冲突了,所以注释掉-->

<2>全局配置

1.applicaton.propoties

spring.application.name=mydemo02
#spring.datasource.type=com.alibaba.druid.pool.DruidDataSource数据连接池冲突
#spring.datasource.driver-class-name=com.mysql.jdbc.Driver新版不需要写这一行,会自动配置
spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl  

mybatis-plus.mapper-locations=classpath:mapper/*.xml
mybatis-plus.configuration.map-underscore-to-camel-case=true

2.启动类里面添加@MapperScan注解(MpdemoApplication)

@MapperScan("com.example.mpdemo.mapper")
//""里面是复制引用

image

四、实例(以新建一个查询为例)

<1> entity包下面User.java(实体类)

1.对应着数据库

image

private int id;
private String username;
private String password;
private String birthday;

2.右键(技巧)

image

简便操作

image

3.代码如下

package com.example.mydemo02.entity;

public class User {
    private int id;
    private String username;
    private String password;
    private String birthday;


    public int getId() {
        return id;
    }

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

    public String getBirthday() {
        return birthday;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

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

    @Override
    public String toString() {
        return "user{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", birthday='" + birthday + '\'' +
                '}';
    }
}

<2>mapper包下面UserMapper.java(interface接口类)(用作数据库相关操作)

1.注解: @mapper

有这个注解才代表这个接口有用的。

image

2.extends BaseMapper<User>

继承“BaseMapper<实体类>”

3.注解:@Select("xxx")

相当于数据库里面的SOL语句。需要在mapper下面使用,然后controller层控制器才能用

@Select("select * from user")

用在UserController.java里面的下面语句:

List<User> list=userMapper.find();

4.代码如下

package com.example.mydemo02.controller;

import com.example.mydemo02.entity.User;
import com.example.mydemo02.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class UserController {

    @Autowired
    private UserMapper userMapper;

    @GetMapping("/user")
    public List query(){

        List<User> list=userMapper.find();
        System.out.println(list);
        return list;
    }
}

<3>controller包下面的UserController.java(控制层,控制器)

1.@RestController注释

有了这个UserController.java才能作为控制器使用。

2.@GetMapping("/user")

路径:"/user",类型:Get

3.注释:@Autowired

非常之有用,可以把Usermapper实例化,用法如下:

private UserMapper userMapper;

 然后就可以在下面的方法中使用

List<User> list=userMapper.find();

4.代码:

package com.example.mydemo02.controller;

import com.example.mydemo02.entity.User;
import com.example.mydemo02.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class UserController {

    @Autowired
    private UserMapper userMapper;

    @GetMapping("/user")
    public List query(){

        List<User> list=userMapper.find();
        System.out.println(list);
        return list;
    }
}

<4>插入,删除.......其他操作

1.首先,执行任何动作前,需要在mapper下面执行的CRUD操作如下:

(CRUD用于mybatis, mybatis-plus不需要写这个。)

image

2.例子如insert插入

a.在mapper层下面的UserMapper.java里面添加:

@Insert("insert into user values (#{id},#{username},#{password},#{birthday})")
public int save(User user);

b.在Controller层下面的UserController里面添加

@PostMapping("/user")
public String save(User user){
    int i=userMapper.insert(user);
    if(i>0){
        return "插入成功";
    }else {
        return "插入失败";
    }
}

c.api测试接口

image

d.数据库数据增加

image

 

 

 

 

 

 

 

posted on 2025-08-11 15:25  Adda...nina  阅读(13)  评论(0)    收藏  举报

导航